]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-mptcp.c
PPTP: Remove 68 redundant ND_TCHECK_[124] calls
[tcpdump] / print-mptcp.c
index c2d61e1590ec9f2aa38cd83f70d9a6196b622e61..317f744ca46ccb9c3fc28d6081bdd9e26a1db07e 100644 (file)
@@ -113,6 +113,14 @@ struct mp_dss {
 #define MP_DSS_a                        0x02
 #define MP_DSS_A                        0x01
 
+static const struct tok mptcp_addr_subecho_bits[] = {
+        { 0x6, "v0-ip6" },
+        { 0x4, "v0-ip4" },
+        { 0x1, "v1-echo" },
+        { 0x0, "v1" },
+        { 0, NULL }
+};
+
 struct mp_add_addr {
         nd_uint8_t     kind;
         nd_uint8_t     len;
@@ -194,10 +202,10 @@ mp_capable_print(netdissect_options *ndo,
         switch (MP_CAPABLE_OPT_VERSION(mpc->sub_ver)) {
                 case 0: /* fall through */
                 case 1:
-                        ND_PRINT(" v%d", MP_CAPABLE_OPT_VERSION(mpc->sub_ver));
+                        ND_PRINT(" v%u", MP_CAPABLE_OPT_VERSION(mpc->sub_ver));
                         break;
                 default:
-                        ND_PRINT(" Unknown Version (%d)",
+                        ND_PRINT(" Unknown Version (%u)",
                                   MP_CAPABLE_OPT_VERSION(mpc->sub_ver));
                         return 1;
         }
@@ -354,6 +362,9 @@ add_addr_print(netdissect_options *ndo,
             opt_len == 20 || opt_len == 22 || opt_len == 28 || opt_len == 30))
                 return 0;
 
+        ND_PRINT(" %s",
+                 tok2str(mptcp_addr_subecho_bits, "[bad version/echo]",
+                         GET_U_1(add_addr->sub_echo) & 0xF));
         ND_PRINT(" id %u", GET_U_1(add_addr->addr_id));
         if (opt_len == 8 || opt_len == 10 || opt_len == 16 || opt_len == 18) {
                 ND_PRINT(" %s", GET_IPADDR_STRING(add_addr->u.v4.addr));
@@ -464,7 +475,7 @@ mptcp_print(netdissect_options *ndo,
 
         opt = (const struct mptcp_option *) cp;
         ND_TCHECK_SIZE(opt);
-        subtype = min(MPTCP_OPT_SUBTYPE(opt->sub_etc), MPTCP_SUB_FCLOSE + 1);
+        subtype = ND_MIN(MPTCP_OPT_SUBTYPE(opt->sub_etc), MPTCP_SUB_FCLOSE + 1);
 
         ND_PRINT(" %s", mptcp_options[subtype].name);
         return mptcp_options[subtype].print(ndo, cp, len, flags);