]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-udp.c
NDOize more small decoders
[tcpdump] / print-udp.c
index a8566d04048b6352bd640c7fe0c2108756431a8f..f52de0356cd394041444f63fca449fca68a54763 100644 (file)
@@ -289,8 +289,8 @@ static int udp_cksum(register const struct ip *ip,
 static int udp6_cksum(const struct ip6_hdr *ip6, const struct udphdr *up,
        u_int len)
 {
-       return (nextproto6_cksum(ip6, (const u_int8_t *)(void *)up, len,
-           IPPROTO_UDP));
+       return nextproto6_cksum(ip6, (const u_int8_t *)(void *)up, len, len,
+           IPPROTO_UDP);
 }
 #endif
 
@@ -472,7 +472,7 @@ udp_print(register const u_char *bp, u_int length,
 
                case PT_VXLAN:
                        udpipaddr_print(ip, sport, dport);
-                       vxlan_print((const u_char *)(up + 1), length);
+                       vxlan_print(gndo, (const u_char *)(up + 1), length);
                        break;
 
                case PT_PGM:
@@ -488,6 +488,7 @@ udp_print(register const u_char *bp, u_int length,
                return;
        }
 
+       udpipaddr_print(ip, sport, dport);
        if (!qflag) {
                register struct sunrpc_msg *rp;
                enum sunrpc_msg_type direction;
@@ -496,12 +497,14 @@ udp_print(register const u_char *bp, u_int length,
                if (TTEST(rp->rm_direction)) {
                        direction = (enum sunrpc_msg_type)EXTRACT_32BITS(&rp->rm_direction);
                        if (dport == NFS_PORT && direction == SUNRPC_CALL) {
-                               nfsreq_print((u_char *)rp, length,
+                               (void)printf("NFS request xid %u ", EXTRACT_32BITS(&rp->rm_xid));
+                               nfsreq_print_noaddr((u_char *)rp, length,
                                    (u_char *)ip);
                                return;
                        }
                        if (sport == NFS_PORT && direction == SUNRPC_REPLY) {
-                               nfsreply_print((u_char *)rp, length,
+                               (void)printf("NFS reply xid %u ", EXTRACT_32BITS(&rp->rm_xid));
+                               nfsreply_print_noaddr((u_char *)rp, length,
                                    (u_char *)ip);
                                return;
                        }
@@ -521,7 +524,6 @@ udp_print(register const u_char *bp, u_int length,
                        return;
                }
        }
-       udpipaddr_print(ip, sport, dport);
 
        if (vflag && !Kflag && !fragmented) {
                 /* Check the checksum, if possible. */
@@ -625,7 +627,7 @@ udp_print(register const u_char *bp, u_int length,
                else if (ISPORT(DHCP6_SERV_PORT) || ISPORT(DHCP6_CLI_PORT))
                        dhcp6_print((const u_char *)(up + 1), length);
                else if (ISPORT(AHCP_PORT))
-                       ahcp_print((const u_char *)(up + 1), length);
+                       ahcp_print(gndo, (const u_char *)(up + 1), length);
                else if (ISPORT(BABEL_PORT) || ISPORT(BABEL_PORT_OLD))
                        babel_print((const u_char *)(up + 1), length);
 #endif /*INET6*/
@@ -642,7 +644,7 @@ udp_print(register const u_char *bp, u_int length,
                         ISPORT(RADIUS_NEW_ACCOUNTING_PORT) )
                        radius_print((const u_char *)(up+1), length);
                else if (dport == HSRP_PORT)
-                       hsrp_print((const u_char *)(up + 1), length);
+                       hsrp_print(gndo, (const u_char *)(up + 1), length);
                else if (ISPORT(LWRES_PORT))
                        lwres_print((const u_char *)(up + 1), length);
                else if (ISPORT(LDP_PORT))
@@ -658,7 +660,7 @@ udp_print(register const u_char *bp, u_int length,
                        lspping_print((const u_char *)(up + 1), length);
                else if (dport == BFD_CONTROL_PORT ||
                         dport == BFD_ECHO_PORT )
-                       bfd_print((const u_char *)(up+1), length, dport);
+                       bfd_print(gndo, (const u_char *)(up+1), length, dport);
                 else if (ISPORT(LMP_PORT))
                        lmp_print((const u_char *)(up + 1), length);
                else if (ISPORT(VQP_PORT))
@@ -676,9 +678,9 @@ udp_print(register const u_char *bp, u_int length,
                 else if (ISPORT(SYSLOG_PORT))
                        syslog_print((const u_char *)(up + 1), length);
                 else if (ISPORT(OTV_PORT))
-                       otv_print((const u_char *)(up + 1), length);
+                       otv_print(gndo, (const u_char *)(up + 1), length);
                 else if (ISPORT(VXLAN_PORT))
-                       vxlan_print((const u_char *)(up + 1), length);
+                       vxlan_print(gndo, (const u_char *)(up + 1), length);
                else
                        (void)printf("UDP, length %u",
                            (u_int32_t)(ulen - sizeof(*up)));