summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_syncache.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2007-03-17 11:52:54 +0000
committerandre <andre@FreeBSD.org>2007-03-17 11:52:54 +0000
commita31ec7e01ca844620709521f532b0581b436c816 (patch)
tree54e7cc45b9bb73ed464b4452d83dedfad83509be /sys/netinet/tcp_syncache.c
parentcda4ca63d432e2d817f6749d250d1151784d49c4 (diff)
downloadFreeBSD-src-a31ec7e01ca844620709521f532b0581b436c816.zip
FreeBSD-src-a31ec7e01ca844620709521f532b0581b436c816.tar.gz
Unbreak IPv6 after consolidation of TCP options insertion.
Submitted by: tegge
Diffstat (limited to 'sys/netinet/tcp_syncache.c')
-rw-r--r--sys/netinet/tcp_syncache.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index a8b1bac..fa32ca2 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -1227,16 +1227,15 @@ syncache_respond(struct syncache *sc, struct mbuf *m)
ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) + optlen);
else
#endif
- {
ip->ip_len += optlen;
- }
} else
optlen = 0;
#ifdef INET6
if (sc->sc_inc.inc_isipv6) {
th->th_sum = 0;
- th->th_sum = in6_cksum(m, IPPROTO_TCP, hlen, tlen - hlen);
+ th->th_sum = in6_cksum(m, IPPROTO_TCP, hlen,
+ tlen + optlen - hlen);
ip6->ip6_hlim = in6_selecthlim(NULL, NULL);
error = ip6_output(m, NULL, NULL, 0, NULL, NULL, NULL);
} else
OpenPOWER on IntegriCloud