mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
Calculate any delayed checksums before handing an mbuf off to a
divert socket. This fixes a problem with ppp/natd. Reviewed by: bsd (Brian Dean, gotta love that login name)
This commit is contained in:
parent
2f694bd90e
commit
ea53ecd9d4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=58895
1 changed files with 10 additions and 0 deletions
|
@ -506,6 +506,16 @@ ip_output(m0, opt, ro, flags, imo)
|
|||
if ((off & IP_FW_PORT_TEE_FLAG) != 0)
|
||||
clone = m_dup(m, M_DONTWAIT);
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* delayed checksums are not currently compatible
|
||||
* with divert sockets.
|
||||
*/
|
||||
if (m->m_pkthdr.csum_flags & CSUM_DELAY_DATA) {
|
||||
in_delayed_cksum(m);
|
||||
m->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA;
|
||||
}
|
||||
|
||||
/* Restore packet header fields to original values */
|
||||
HTONS(ip->ip_len);
|
||||
HTONS(ip->ip_off);
|
||||
|
|
Loading…
Reference in a new issue