]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-tcp.c
provide multiline output for PIM Joins/Grafts/Graft-Acks
[tcpdump] / print-tcp.c
index d42cfe4543c861e12dfc92c61cab306a348a8360..ccf8770665affe7520289a26ad1d64813398e359 100644 (file)
@@ -20,8 +20,8 @@
  */
 
 #ifndef lint
-static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.105 2003-06-07 11:57:54 guy Exp $ (LBL)";
+static const char rcsid[] _U_ =
+    "@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.110 2003-11-19 00:17:32 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -100,7 +100,7 @@ static struct tcp_seq_hash tcp_seq_hash[TSEQ_HASHSIZE];
 
 static int tcp_cksum(register const struct ip *ip,
                     register const struct tcphdr *tp,
-                    register int len)
+                    register u_int len)
 {
        union phu {
                struct phdr {
@@ -115,7 +115,7 @@ static int tcp_cksum(register const struct ip *ip,
        const u_int16_t *sp;
 
        /* pseudo-header.. */
-       phu.ph.len = htons(len);        /* XXX */
+       phu.ph.len = htons((u_int16_t)len);
        phu.ph.mbz = 0;
        phu.ph.proto = IPPROTO_TCP;
        memcpy(&phu.ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t));
@@ -131,9 +131,9 @@ static int tcp_cksum(register const struct ip *ip,
 
 #ifdef INET6
 static int tcp6_cksum(const struct ip6_hdr *ip6, const struct tcphdr *tp,
-       int len)
+       u_int len)
 {
-       int i, tlen;
+       size_t i;
        register const u_int16_t *sp;
        u_int32_t sum;
        union {
@@ -147,14 +147,11 @@ static int tcp6_cksum(const struct ip6_hdr *ip6, const struct tcphdr *tp,
                u_int16_t pa[20];
        } phu;
 
-       tlen = EXTRACT_16BITS(&ip6->ip6_plen) + sizeof(struct ip6_hdr) -
-           ((const char *)tp - (const char*)ip6);
-
        /* pseudo-header */
        memset(&phu, 0, sizeof(phu));
        phu.ph.ph_src = ip6->ip6_src;
        phu.ph.ph_dst = ip6->ip6_dst;
-       phu.ph.ph_len = htonl(tlen);
+       phu.ph.ph_len = htonl(len);
        phu.ph.ph_nxt = IPPROTO_TCP;
 
        sum = 0;
@@ -163,10 +160,10 @@ static int tcp6_cksum(const struct ip6_hdr *ip6, const struct tcphdr *tp,
 
        sp = (const u_int16_t *)tp;
 
-       for (i = 0; i < (tlen & ~1); i += 2)
+       for (i = 0; i < (len & ~1); i += 2)
                sum += *sp++;
 
-       if (tlen & 1)
+       if (len & 1)
                sum += htons((*(const u_int8_t *)sp) << 8);
 
        while (sum > 0xffff)
@@ -622,7 +619,7 @@ tcp_print(register const u_char *bp, register u_int length,
                         * TCP DNS query has 2byte length at the head.
                         * XXX packet could be unaligned, it can go strange
                         */
-                       ns_print(bp + 2, length - 2);
+                       ns_print(bp + 2, length - 2, 0);
                } else if (sport == MSDP_PORT || dport == MSDP_PORT) {
                        msdp_print(bp, length);
                }