]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-arp.c
ARP: Modernize packet parsing style.
[tcpdump] / print-arp.c
index e883817488c929e9b48f45e27658f480cd949b72..7cbe781628a69fd355392ee6c805a14e5222870e 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <string.h>
 
+#define ND_LONGJMP_FROM_TCHECK
 #include "netdissect.h"
 #include "addrtoname.h"
 #include "ethertype.h"
@@ -266,11 +267,7 @@ atmarp_print(netdissect_options *ndo,
        pro = ATMPRO(ap);
        op = ATMOP(ap);
 
-       if (!ND_TTEST_LEN(aar_tpa(ap), ATMTPROTO_LEN(ap))) {
-               nd_print_trunc(ndo);
-               ND_DEFAULTPRINT((const u_char *)ap, length);
-               return;
-       }
+       ND_TCHECK_LEN(ATMTPA(ap), ATMTPROTO_LEN(ap));
 
         if (!ndo->ndo_eflag) {
             ND_PRINT("ARP, ");
@@ -347,10 +344,6 @@ atmarp_print(netdissect_options *ndo,
 
  out:
         ND_PRINT(", length %u", length);
-        return;
-
-trunc:
-       nd_print_trunc(ndo);
 }
 
 void
@@ -386,11 +379,7 @@ arp_print(netdissect_options *ndo,
             break;
        }
 
-       if (!ND_TTEST_LEN(TPA(ap), PROTO_LEN(ap))) {
-               nd_print_trunc(ndo);
-               ND_DEFAULTPRINT((const u_char *)ap, length);
-               return;
-       }
+       ND_TCHECK_LEN(TPA(ap), PROTO_LEN(ap));
 
         if (!ndo->ndo_eflag) {
             ND_PRINT("ARP, ");
@@ -467,8 +456,4 @@ arp_print(netdissect_options *ndo,
 
  out:
         ND_PRINT(", length %u", length);
-
-       return;
-trunc:
-       nd_print_trunc(ndo);
 }