#define LCPOPT_SDLOS 29
#define LCPOPT_PPPMUX 30
-#define LCPOPT_MIN LCPOPT_VEXT
-#define LCPOPT_MAX LCPOPT_PPPMUX
-
static const char *lcpconfopts[] = {
"Vend-Ext", /* (0) */
"MRU", /* (1) */
"PPP-Muxing", /* (30) */
};
+#define NUM_LCPOPTS (sizeof lcpconfopts / sizeof lcpconfopts[0])
+
/* ECP - to be supported */
/* CCP Config Options */
if (length < 4) /* FIXME weak boundary checking */
goto trunc;
- ND_TCHECK2(*tptr, 2);
+ ND_TCHECK_2(tptr);
code = EXTRACT_U_1(tptr);
tptr++;
/* XXX: need to decode Data? - hexdump for now */
if (len > 8) {
ND_PRINT((ndo, "\n\t -----trailing data-----"));
- ND_TCHECK2(tptr[4], len - 8);
+ ND_TCHECK_LEN(tptr + 4, len - 8);
print_unknown_data(ndo, tptr + 4, "\n\t ", len - 8);
}
break;
if (length < 2)
return 0;
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
opt = EXTRACT_U_1(p);
len = EXTRACT_U_1(p + 1);
if (length < len)
return 0;
if (len < 2) {
- if ((opt >= LCPOPT_MIN) && (opt <= LCPOPT_MAX))
+ if (opt < NUM_LCPOPTS)
ND_PRINT((ndo, "\n\t %s Option (0x%02x), length %u (length bogus, should be >= 2)",
lcpconfopts[opt], opt, len));
else
ND_PRINT((ndo, "\n\tunknown LCP option 0x%02x", opt));
return 0;
}
- if ((opt >= LCPOPT_MIN) && (opt <= LCPOPT_MAX))
+ if (opt < NUM_LCPOPTS)
ND_PRINT((ndo, "\n\t %s Option (0x%02x), length %u", lcpconfopts[opt], opt, len));
else {
ND_PRINT((ndo, "\n\tunknown LCP option 0x%02x", opt));
ND_PRINT((ndo, " (length bogus, should be = 7)"));
return 0;
}
- ND_TCHECK2(*(p + 3), 4);
+ ND_TCHECK_4(p + 3);
ND_PRINT((ndo, ": IPv4 %s", ipaddr_string(ndo, p + 3)));
break;
case MEDCLASS_MAC:
ND_PRINT((ndo, " (length bogus, should be = 9)"));
return 0;
}
- ND_TCHECK2(*(p + 3), 6);
+ ND_TCHECK_6(p + 3);
ND_PRINT((ndo, ": MAC %s", etheraddr_string(ndo, p + 3)));
break;
case MEDCLASS_MNB:
return;
}
length = len;
- if (length < (p - p0)) {
+ if (length < (size_t)(p - p0)) {
ND_PRINT((ndo, ", length %u < PAP header length", length));
return;
}
if (length < 2)
return 0;
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
opt = EXTRACT_U_1(p);
len = EXTRACT_U_1(p + 1);
if (length < len)
ND_PRINT((ndo, " (length bogus, should be = 10)"));
return len;
}
- ND_TCHECK2(*(p + 6), 4);
+ ND_TCHECK_4(p + 6);
ND_PRINT((ndo, ": src %s, dst %s",
ipaddr_string(ndo, p + 2),
ipaddr_string(ndo, p + 6)));
return 0;
}
- ND_TCHECK2(*(p + 2), IPCPOPT_IPCOMP_MINLEN);
+ ND_TCHECK_LEN(p + 2, IPCPOPT_IPCOMP_MINLEN);
ND_PRINT((ndo, "\n\t TCP Space %u, non-TCP Space %u" \
", maxPeriod %u, maxTime %u, maxHdr %u",
EXTRACT_BE_U_2(p + 4),
ND_PRINT((ndo, "\n\t Suboptions, length %u", ipcomp_subopttotallen));
while (ipcomp_subopttotallen >= 2) {
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
ipcomp_subopt = EXTRACT_U_1(p);
ipcomp_suboptlen = EXTRACT_U_1(p + 1);
ND_PRINT((ndo, " (length bogus, should be = 6)"));
return 0;
}
- ND_TCHECK2(*(p + 2), 4);
+ ND_TCHECK_4(p + 2);
ND_PRINT((ndo, ": %s", ipaddr_string(ndo, p + 2)));
break;
default:
if (length < 2)
return 0;
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
opt = EXTRACT_U_1(p);
len = EXTRACT_U_1(p + 1);
if (length < len)
ND_PRINT((ndo, " (length bogus, should be = 10)"));
return len;
}
- ND_TCHECK2(*(p + 2), 8);
+ ND_TCHECK_8(p + 2);
ND_PRINT((ndo, ": %04x:%04x:%04x:%04x",
EXTRACT_BE_U_2(p + 2),
EXTRACT_BE_U_2(p + 4),
if (length < 2)
return 0;
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
opt = EXTRACT_U_1(p);
len = EXTRACT_U_1(p + 1);
if (length < len)
if (length < 2)
return 0;
- ND_TCHECK2(*p, 2);
+ ND_TCHECK_2(p);
opt = EXTRACT_U_1(p);
len = EXTRACT_U_1(p + 1);
if (length < len)
* Do this so that we dont overwrite the original packet
* contents.
*/
- for (s = p, t = b, i = length; i != 0 && ND_TTEST(*s); i--) {
+ for (s = p, t = b, i = length; i != 0 && ND_TTEST_1(s); i--) {
c = EXTRACT_U_1(s);
s++;
if (c == 0x7d) {
/* Standard PPP printer */
u_int
ppp_print(netdissect_options *ndo,
- register const u_char *p, u_int length)
+ const u_char *p, u_int length)
{
u_int proto,ppp_header;
u_int olen = length; /* _o_riginal length */
/* PPP I/F printer */
u_int
ppp_if_print(netdissect_options *ndo,
- const struct pcap_pkthdr *h, register const u_char *p)
+ const struct pcap_pkthdr *h, const u_char *p)
{
- register u_int length = h->len;
- register u_int caplen = h->caplen;
+ u_int length = h->len;
+ u_int caplen = h->caplen;
if (caplen < PPP_HDRLEN) {
ND_PRINT((ndo, "[|ppp]"));
*/
u_int
ppp_hdlc_if_print(netdissect_options *ndo,
- const struct pcap_pkthdr *h, register const u_char *p)
+ const struct pcap_pkthdr *h, const u_char *p)
{
- register u_int length = h->len;
- register u_int caplen = h->caplen;
+ u_int length = h->len;
+ u_int caplen = h->caplen;
u_int proto;
u_int hdrlen = 0;
/* BSD/OS specific PPP printer */
u_int
ppp_bsdos_if_print(netdissect_options *ndo _U_,
- const struct pcap_pkthdr *h _U_, register const u_char *p _U_)
+ const struct pcap_pkthdr *h _U_, const u_char *p _U_)
{
- register u_int hdrlength;
+ u_int hdrlength;
#ifdef __bsdi__
- register u_int length = h->len;
- register u_int caplen = h->caplen;
+ u_int length = h->len;
+ u_int caplen = h->caplen;
uint16_t ptype;
uint8_t llhl;
const u_char *q;