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
@ -506,6 +506,16 @@ sendit:
|
||||
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…
x
Reference in New Issue
Block a user