#include "netdissect-stdinc.h"
+#define ND_LONGJMP_FROM_TCHECK
#include "netdissect.h"
#include "extract.h"
#include "af.h"
nd_uint32_t flags;
};
-#define ENC_PRINT_TYPE(wh, xf, nam) \
+#define ENC_PRINT_TYPE(wh, xf, name) \
if ((wh) & (xf)) { \
- ND_PRINT("%s%s", nam, (wh) == (xf) ? "): " : ","); \
+ ND_PRINT("%s%s", name, (wh) == (xf) ? "): " : ","); \
(wh) &= ~(xf); \
}
#define SWAPLONG(y) \
((((y)&0xff)<<24) | (((y)&0xff00)<<8) | (((y)&0xff0000)>>8) | (((y)>>24)&0xff))
-u_int
+void
enc_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
u_int af, flags;
const struct enchdr *hdr;
- ndo->ndo_protocol = "enc_if";
- if (caplen < ENC_HDRLEN) {
- nd_print_trunc(ndo);
- goto out;
- }
+ ndo->ndo_protocol = "enc";
+ ND_TCHECK_LEN(p, ENC_HDRLEN);
+ ndo->ndo_ll_hdr_len += ENC_HDRLEN;
hdr = (const struct enchdr *)p;
/*
ip6_print(ndo, p, length);
break;
}
-
-out:
- return (ENC_HDRLEN);
}