diff options
author | andre <andre@FreeBSD.org> | 2007-03-17 11:52:54 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2007-03-17 11:52:54 +0000 |
commit | a31ec7e01ca844620709521f532b0581b436c816 (patch) | |
tree | 54e7cc45b9bb73ed464b4452d83dedfad83509be /sys/netinet/tcp_syncache.c | |
parent | cda4ca63d432e2d817f6749d250d1151784d49c4 (diff) | |
download | FreeBSD-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.c | 5 |
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 |