]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-udp.c
Merge pull request #372 from fxlb/print-telnet
[tcpdump] / print-udp.c
index a8566d04048b6352bd640c7fe0c2108756431a8f..2bddae9cc3486168de4a5f14792e0b089424057f 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
 
@@ -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. */
@@ -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))