]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-tcp.c
Fix a signed-vs-unsigned comparison warning.
[tcpdump] / print-tcp.c
index 1528b3b9d6de76b3651b2df3d2a485cedabfa416..ccf8770665affe7520289a26ad1d64813398e359 100644 (file)
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+#ifndef lint
+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
 #include "config.h"
 #include "addrtoname.h"
 #include "extract.h"
 
-#ifndef lint
-static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.108 2003-11-15 00:39:41 guy Exp $ (LBL)";
-#endif
 #include "tcp.h"
 
 #include "ip.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)
 {
-       size_t 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)