X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/c208467f18b8cf9b67ca8f1f3780261786575dbc..1bcd37991fa57d9e966a6f96e7cbff59b16c28bd:/netdissect.h diff --git a/netdissect.h b/netdissect.h index b2c80246..854fb8a5 100644 --- a/netdissect.h +++ b/netdissect.h @@ -362,7 +362,11 @@ extern void nd_pop_all_packet_info(netdissect_options *); #define ND_TTEST_SIZE(p) ND_TTEST_LEN(p, sizeof(*(p))) /* Bail out if "l" bytes from "p" were not captured */ +#ifdef ND_LONGJMP_FROM_TCHECK +#define ND_TCHECK_LEN(p, l) if (!ND_TTEST_LEN(p, l)) nd_trunc_longjmp(ndo) +#else #define ND_TCHECK_LEN(p, l) if (!ND_TTEST_LEN(p, l)) goto trunc +#endif /* Bail out if "*(p)" was not captured */ #define ND_TCHECK_SIZE(p) ND_TCHECK_LEN(p, sizeof(*(p))) @@ -391,6 +395,7 @@ extern int nd_print(netdissect_options *, const u_char *, const u_char *); extern u_int nd_printztn(netdissect_options *, const u_char *, u_int, const u_char *); extern int nd_printn(netdissect_options *, const u_char *, u_int, const u_char *); extern int nd_printzp(netdissect_options *, const u_char *, u_int, const u_char *); +extern void nd_printjnp(netdissect_options *, const u_char *, u_int); /* * Flags for txtproto_print(). @@ -447,9 +452,18 @@ extern int unaligned_memcmp(const void *, const void *, size_t); extern const char *tok2strary_internal(const char **, int, const char *, int); #define tok2strary(a,f,i) tok2strary_internal(a, sizeof(a)/sizeof(a[0]),f,i) +struct uint_tokary +{ + u_int uintval; + const struct tok *tokary; +}; + +extern const struct tok *uint2tokary_internal(const struct uint_tokary[], const size_t, const u_int); +#define uint2tokary(a, i) uint2tokary_internal(a, sizeof(a)/sizeof(a[0]), i) + extern if_printer lookup_printer(int); -#define ND_DEBUG {printf(" [%s:%d %s] ", __FILE__, __LINE__, __FUNCTION__); fflush(stdout);} +#define ND_DEBUG {printf(" [%s:%d %s] ", __FILE__, __LINE__, __func__); fflush(stdout);} /* The DLT printer routines */ @@ -612,7 +626,7 @@ extern u_int llap_print(netdissect_options *, const u_char *, u_int); extern int llc_print(netdissect_options *, const u_char *, u_int, u_int, const struct lladdr_info *, const struct lladdr_info *); extern void lldp_print(netdissect_options *, const u_char *, u_int); extern void lmp_print(netdissect_options *, const u_char *, u_int); -extern void loopback_print(netdissect_options *, const u_char *, const u_int); +extern void loopback_print(netdissect_options *, const u_char *, u_int); extern void lspping_print(netdissect_options *, const u_char *, u_int); extern void lwapp_control_print(netdissect_options *, const u_char *, u_int, int); extern void lwapp_data_print(netdissect_options *, const u_char *, u_int); @@ -642,7 +656,7 @@ extern void nsh_print(netdissect_options *, const u_char *, u_int); extern void ntp_print(netdissect_options *, const u_char *, u_int); extern void oam_print(netdissect_options *, const u_char *, u_int, u_int); extern void olsr_print(netdissect_options *, const u_char *, u_int, int); -extern void openflow_print(netdissect_options *, const u_char *, const u_int); +extern void openflow_print(netdissect_options *, const u_char *, u_int); extern void ospf6_print(netdissect_options *, const u_char *, u_int); extern void ospf_print(netdissect_options *, const u_char *, u_int, const u_char *); extern int ospf_grace_lsa_print(netdissect_options *, const u_char *, u_int);