pfil6_wrapper: handle M_CSUM_TCPv6|M_CSUM_UDPv6.

This commit is contained in:
yamt 2005-08-11 13:01:24 +00:00
parent 2edce77c87
commit bbfb2033ff
1 changed files with 14 additions and 1 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: pf_ioctl.c,v 1.19 2005/08/06 11:22:39 yamt Exp $ */ /* $NetBSD: pf_ioctl.c,v 1.20 2005/08/11 13:01:24 yamt Exp $ */
/* $OpenBSD: pf_ioctl.c,v 1.139 2005/03/03 07:13:39 dhartmei Exp $ */ /* $OpenBSD: pf_ioctl.c,v 1.139 2005/03/03 07:13:39 dhartmei Exp $ */
/* /*
@ -3022,6 +3022,19 @@ pfil6_wrapper(void *arg, struct mbuf **mp, struct ifnet *ifp, int dir)
return error; return error;
} }
/*
* If the packet is out-bound, we can't delay checksums
* here. For in-bound, the checksum has already been
* validated.
*/
if (dir == PFIL_OUT) {
if ((*mp)->m_pkthdr.csum_flags & (M_CSUM_TCPv6|M_CSUM_UDPv6)) {
in6_delayed_cksum(*mp);
(*mp)->m_pkthdr.csum_flags &=
~(M_CSUM_TCPv6|M_CSUM_UDPv6);
}
}
if (pf_test6(dir == PFIL_OUT ? PF_OUT : PF_IN, ifp, mp, NULL) if (pf_test6(dir == PFIL_OUT ? PF_OUT : PF_IN, ifp, mp, NULL)
!= PF_PASS) { != PF_PASS) {
m_freem(*mp); m_freem(*mp);