]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ripng.c
Revert partially the commit 21b1273
[tcpdump] / print-ripng.c
index 8a66cf4030fe8e1fa11c4ff0059c6a273fcb0f37..e030c000cdce74939e4be3b2bddb0b39dfddbbec 100644 (file)
@@ -87,7 +87,7 @@ struct        rip6 {
 
 static int ND_IN6_IS_ADDR_UNSPECIFIED(const nd_ipv6 *addr)
 {
-    static const struct in6_addr in6addr_any_val;        /* :: */
+    static const nd_ipv6 in6addr_any_val = { 0 };        /* :: */
     return (memcmp(addr, &in6addr_any_val, sizeof(*addr)) == 0);
 }
 
@@ -97,9 +97,9 @@ rip6_entry_print(netdissect_options *ndo, const struct netinfo6 *ni, u_int metri
        int l;
        uint16_t tag;
 
-       l = ND_PRINT("%s/%u", ip6addr_string(ndo, ni->rip6_dest),
-                    EXTRACT_U_1(ni->rip6_plen));
-       tag = EXTRACT_BE_U_2(ni->rip6_tag);
+       l = ND_PRINT("%s/%u", GET_IP6ADDR_STRING(ni->rip6_dest),
+                    GET_U_1(ni->rip6_plen));
+       tag = GET_BE_U_2(ni->rip6_tag);
        if (tag)
                l += ND_PRINT(" [%u]", tag);
        if (metric)
@@ -116,8 +116,8 @@ ripng_print(netdissect_options *ndo, const u_char *dat, unsigned int length)
        unsigned int length_left;
        u_int j;
 
-       ND_TCHECK_1(rp->rip6_cmd);
-       cmd = EXTRACT_U_1(rp->rip6_cmd);
+       ndo->ndo_protocol = "ripng";
+       cmd = GET_U_1(rp->rip6_cmd);
        switch (cmd) {
 
        case RIP6_REQUEST:
@@ -128,7 +128,7 @@ ripng_print(netdissect_options *ndo, const u_char *dat, unsigned int length)
                j = length_left / sizeof(*ni);
                if (j == 1) {
                        ND_TCHECK_SIZE(rp->rip6_nets);
-                       if (EXTRACT_U_1(rp->rip6_nets->rip6_metric) == HOPCNT_INFINITY6
+                       if (GET_U_1(rp->rip6_nets->rip6_metric) == HOPCNT_INFINITY6
                            && ND_IN6_IS_ADDR_UNSPECIFIED(&rp->rip6_nets->rip6_dest)) {
                                ND_PRINT(" ripng-req dump");
                                break;
@@ -167,7 +167,7 @@ ripng_print(netdissect_options *ndo, const u_char *dat, unsigned int length)
                                ND_PRINT("\n\t");
                        else
                                ND_PRINT(" ");
-                       rip6_entry_print(ndo, ni, EXTRACT_U_1(ni->rip6_metric));
+                       rip6_entry_print(ndo, ni, GET_U_1(ni->rip6_metric));
                }
                if (length_left != 0)
                        goto trunc;
@@ -176,12 +176,11 @@ ripng_print(netdissect_options *ndo, const u_char *dat, unsigned int length)
                ND_PRINT(" ripng-%u ?? %u", cmd, length);
                break;
        }
-       ND_TCHECK_1(rp->rip6_vers);
-       if (EXTRACT_U_1(rp->rip6_vers) != RIP6_VERSION)
-               ND_PRINT(" [vers %u]", EXTRACT_U_1(rp->rip6_vers));
+       if (GET_U_1(rp->rip6_vers) != RIP6_VERSION)
+               ND_PRINT(" [vers %u]", GET_U_1(rp->rip6_vers));
        return;
 
 trunc:
-       ND_PRINT("[|ripng]");
+       nd_print_trunc(ndo);
        return;
 }