X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/d18bb2331dbcb9585d6ca2de96ad02a2ddb7ad03..309ca62193772fd8ba532fd413b51a61be0c741e:/print-tcp.c diff --git a/print-tcp.c b/print-tcp.c index 82840419..88b46157 100644 --- a/print-tcp.c +++ b/print-tcp.c @@ -129,30 +129,8 @@ static int tcp_cksum(register const struct ip *ip, register const struct tcphdr *tp, register u_int len) { - struct phdr { - u_int32_t src; - u_int32_t dst; - u_char mbz; - u_char proto; - u_int16_t len; - } ph; - struct cksum_vec vec[2]; - - /* pseudo-header.. */ - ph.len = htons((u_int16_t)len); - ph.mbz = 0; - ph.proto = IPPROTO_TCP; - memcpy(&ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t)); - if (IP_HL(ip) == 5) - memcpy(&ph.dst, &ip->ip_dst.s_addr, sizeof(u_int32_t)); - else - ph.dst = ip_finddst(ip); - - vec[0].ptr = (const u_int8_t *)(void *)&ph; - vec[0].len = sizeof(ph); - vec[1].ptr = (const u_int8_t *)tp; - vec[1].len = len; - return in_cksum(vec, 2); + return (nextproto4_cksum(ip, (const u_int8_t *)tp, len, + IPPROTO_TCP)); } void