summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_divert.c
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2010-03-12 22:58:52 +0000
committerrrs <rrs@FreeBSD.org>2010-03-12 22:58:52 +0000
commit5db64758fcb81922e732307039ff65d0d7c6f36c (patch)
treeeeed8f9c724c05485087e8c9541f2d96864ccbd3 /sys/netinet/ip_divert.c
parent2e508fb884590ee2b3a020fcc70b4a4e2121f056 (diff)
downloadFreeBSD-src-5db64758fcb81922e732307039ff65d0d7c6f36c.zip
FreeBSD-src-5db64758fcb81922e732307039ff65d0d7c6f36c.tar.gz
The proper fix for the delayed SCTP checksum is to
have the delayed function take an argument as to the offset to the SCTP header. This allows it to work for V4 and V6. This of course means changing all callers of the function to either pass the header len, if they have it, or create it (ip_hl << 2 or sizeof(ip6_hdr)). PR: 144529 MFC after: 2 weeks
Diffstat (limited to 'sys/netinet/ip_divert.c')
-rw-r--r--sys/netinet/ip_divert.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index 7fd20f8..22e52ba 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -227,7 +227,7 @@ divert_packet(struct mbuf *m, int incoming)
#ifdef SCTP
if (m->m_pkthdr.csum_flags & CSUM_SCTP) {
ip->ip_len = ntohs(ip->ip_len);
- sctp_delayed_cksum(m);
+ sctp_delayed_cksum(m, (uint32_t)(ip->ip_hl << 2));
m->m_pkthdr.csum_flags &= ~CSUM_SCTP;
ip->ip_len = htons(ip->ip_len);
}
OpenPOWER on IntegriCloud