X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/729a57f75a9c97fecc9ba5b4d7762dd89c797748..refs/heads/master:/addrtoname.h diff --git a/addrtoname.h b/addrtoname.h index b50739f3..e17a1f4b 100644 --- a/addrtoname.h +++ b/addrtoname.h @@ -21,6 +21,11 @@ #include "extract.h" +#ifdef HAVE_CASPER +#include +extern cap_channel_t *capdns; +#endif + /* * Definition to let us compile most of the IPv6 code even on systems * without IPv6 support. @@ -32,9 +37,9 @@ /* Name to address translation routines. */ enum { - LINKADDR_ETHER, + LINKADDR_MAC48, LINKADDR_FRELAY, - LINKADDR_IEEE1394, + LINKADDR_EUI64, LINKADDR_ATM, LINKADDR_OTHER }; @@ -42,8 +47,9 @@ enum { #define BUFSIZE 128 extern const char *linkaddr_string(netdissect_options *, const uint8_t *, const unsigned int, const unsigned int); -extern const char *etheraddr_string(netdissect_options *, const uint8_t *); -extern const char *le64addr_string(netdissect_options *, const uint8_t *); +extern const char *mac48_string(netdissect_options *, const uint8_t *); +extern const char *eui64_string(netdissect_options *, const uint8_t *); +extern const char *eui64le_string(netdissect_options *, const uint8_t *); extern const char *tcpport_string(netdissect_options *, u_short); extern const char *udpport_string(netdissect_options *, u_short); extern const char *isonsap_string(netdissect_options *, const uint8_t *, u_int); @@ -68,24 +74,32 @@ get_linkaddr_string(netdissect_options *ndo, const uint8_t *p, const unsigned int type, const unsigned int len) { if (!ND_TTEST_LEN(p, len)) - nd_trunc(ndo); + nd_trunc_longjmp(ndo); return linkaddr_string(ndo, p, type, len); } static inline const char * -get_etheraddr_string(netdissect_options *ndo, const uint8_t *p) +get_mac48_string(netdissect_options *ndo, const uint8_t *p) +{ + if (!ND_TTEST_LEN(p, MAC48_LEN)) + nd_trunc_longjmp(ndo); + return mac48_string(ndo, p); +} + +static inline const char * +get_eui64_string(netdissect_options *ndo, const uint8_t *p) { - if (!ND_TTEST_LEN(p, MAC_ADDR_LEN)) - nd_trunc(ndo); - return etheraddr_string(ndo, p); + if (!ND_TTEST_LEN(p, EUI64_LEN)) + nd_trunc_longjmp(ndo); + return eui64_string(ndo, p); } static inline const char * -get_le64addr_string(netdissect_options *ndo, const u_char *p) +get_eui64le_string(netdissect_options *ndo, const uint8_t *p) { - if (!ND_TTEST_8(p)) - nd_trunc(ndo); - return le64addr_string(ndo, p); + if (!ND_TTEST_LEN(p, EUI64_LEN)) + nd_trunc_longjmp(ndo); + return eui64le_string(ndo, p); } static inline const char * @@ -93,7 +107,7 @@ get_isonsap_string(netdissect_options *ndo, const uint8_t *nsap, u_int nsap_length) { if (!ND_TTEST_LEN(nsap, nsap_length)) - nd_trunc(ndo); + nd_trunc_longjmp(ndo); return isonsap_string(ndo, nsap, nsap_length); } @@ -101,7 +115,7 @@ static inline const char * get_ipaddr_string(netdissect_options *ndo, const u_char *p) { if (!ND_TTEST_4(p)) - nd_trunc(ndo); + nd_trunc_longjmp(ndo); return ipaddr_string(ndo, p); } @@ -109,13 +123,14 @@ static inline const char * get_ip6addr_string(netdissect_options *ndo, const u_char *p) { if (!ND_TTEST_16(p)) - nd_trunc(ndo); + nd_trunc_longjmp(ndo); return ip6addr_string(ndo, p); } #define GET_LINKADDR_STRING(p, type, len) get_linkaddr_string(ndo, (const u_char *)(p), type, len) -#define GET_ETHERADDR_STRING(p) get_etheraddr_string(ndo, (const u_char *)(p)) -#define GET_LE64ADDR_STRING(p) get_le64addr_string(ndo, (const u_char *)(p)) +#define GET_MAC48_STRING(p) get_mac48_string(ndo, (const u_char *)(p)) +#define GET_EUI64_STRING(p) get_eui64_string(ndo, (const u_char *)(p)) +#define GET_EUI64LE_STRING(p) get_eui64le_string(ndo, (const u_char *)(p)) #define GET_ISONSAP_STRING(nsap, nsap_length) get_isonsap_string(ndo, (const u_char *)(nsap), nsap_length) #define GET_IPADDR_STRING(p) get_ipaddr_string(ndo, (const u_char *)(p)) #define GET_IP6ADDR_STRING(p) get_ip6addr_string(ndo, (const u_char *)(p))