From: hannes Date: Fri, 3 Feb 2006 08:42:30 +0000 (+0000) Subject: courtesy rick cheng (rcheng AT juniper dot net): X-Git-Tag: tcpdump-3.9.6~23 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/19e9fbaa1396067396b8fbfa2b9af65eae8cb3a5 courtesy rick cheng (rcheng AT juniper dot net): improve code readability: - LDP_TLV_ADDRESS_LIST printer - BFD_DISCRIMINATOR printer --- diff --git a/CREDITS b/CREDITS index 2c0d2294..5ba62bc9 100644 --- a/CREDITS +++ b/CREDITS @@ -114,6 +114,7 @@ Additional people who have contributed patches: Phil Wood Rafal Maszkowski Raphael Raimbault + Rick Cheng Rick Jones Rick Watson Rob Braun diff --git a/print-ldp.c b/print-ldp.c index 65f11c81..c42ee224 100644 --- a/print-ldp.c +++ b/print-ldp.c @@ -16,7 +16,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-ldp.c,v 1.8.2.7 2006-02-01 14:57:43 hannes Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/print-ldp.c,v 1.8.2.8 2006-02-03 08:42:30 hannes Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -215,8 +215,10 @@ static const struct tok ldp_fec_martini_ifparm_vccv_cv_values[] = { }; /* RFC1700 address family numbers, same definition in print-bgp.c */ +/* FIXME: move all AF stuff into dedicated files */ #define AFNUM_INET 1 #define AFNUM_INET6 2 +#define AFNUM_LEN 2 #define FALSE 0 #define TRUE 1 @@ -296,21 +298,24 @@ ldp_tlv_print(register const u_char *tptr) { case LDP_TLV_ADDRESS_LIST: af = EXTRACT_16BITS(tptr); - tptr+=2; + tptr+=AFNUM_LEN; + tlv_tlen -= AFNUM_LEN; printf("\n\t Address Family: "); if (af == AFNUM_INET) { printf("IPv4, addresses:"); - for (i=0; i<(tlv_tlen-2)/4; i++) { + while(tlv_tlen >= sizeof(struct in_addr)) { printf(" %s",ipaddr_string(tptr)); - tptr+=sizeof(struct in_addr); + tlv_tlen-=sizeof(struct in_addr); + tptr+=sizeof(struct in_addr); } } #ifdef INET6 else if (af == AFNUM_INET6) { printf("IPv6, addresses:"); - for (i=0; i<(tlv_tlen-2)/16; i++) { + while(tlv_tlen >= sizeof(struct in6_addr)) { printf(" %s",ip6addr_string(tptr)); - tptr+=sizeof(struct in6_addr); + tlv_tlen-=sizeof(struct in6_addr); + tptr+=sizeof(struct in6_addr); } } #endif diff --git a/print-lspping.c b/print-lspping.c index 7a1640bd..4cac614b 100644 --- a/print-lspping.c +++ b/print-lspping.c @@ -15,7 +15,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-lspping.c,v 1.12.2.4 2006-02-01 14:40:39 hannes Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/print-lspping.c,v 1.12.2.5 2006-02-03 08:42:30 hannes Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -138,6 +138,7 @@ struct lspping_tlv_header { #define LSPPING_TLV_PAD 3 #define LSPPING_TLV_ERROR_CODE 4 #define LSPPING_TLV_BFD_DISCRIMINATOR 15 /* draft-ietf-bfd-mpls-02 */ +#define LSPPING_TLV_BFD_DISCRIMINATOR_LEN 4 #define LSPPING_TLV_VENDOR_PRIVATE 0xfc00 static const struct tok lspping_tlv_values[] = { @@ -836,7 +837,7 @@ lspping_print(register const u_char *pptr, register u_int len) { case LSPPING_TLV_BFD_DISCRIMINATOR: tptr += sizeof(struct lspping_tlv_header); - if (!TTEST2(*tptr, 4)) + if (!TTEST2(*tptr, LSPPING_TLV_BFD_DISCRIMINATOR_LEN)) goto trunc; printf("\n\t BFD Discriminator 0x%08x", EXTRACT_32BITS(tptr)); break;