Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/siftr.c
Context not available. | |||||
inp_locally_locked = 0; | inp_locally_locked = 0; | ||||
ss = DPCPU_PTR(ss); | ss = DPCPU_PTR(ss); | ||||
if (dir == PFIL_FWD) | |||||
dir = PFIL_OUT; | |||||
/* | /* | ||||
* m_pullup is not required here because ip_{input|output} | * m_pullup is not required here because ip_{input|output} | ||||
* already do the heavy lifting for us. | * already do the heavy lifting for us. | ||||
Context not available. | |||||
if (action == HOOK) { | if (action == HOOK) { | ||||
pfil_add_hook(siftr_chkpkt, NULL, | pfil_add_hook(siftr_chkpkt, NULL, | ||||
PFIL_IN | PFIL_OUT | PFIL_WAITOK, pfh_inet); | PFIL_IN | PFIL_FWD| PFIL_OUT | PFIL_WAITOK, | ||||
pfh_inet); | |||||
#ifdef SIFTR_IPV6 | #ifdef SIFTR_IPV6 | ||||
pfil_add_hook(siftr_chkpkt6, NULL, | pfil_add_hook(siftr_chkpkt6, NULL, | ||||
PFIL_IN | PFIL_OUT | PFIL_WAITOK, pfh_inet6); | PFIL_IN | PFIL_FWD | PFIL_OUT | PFIL_WAITOK, | ||||
pfh_inet6); | |||||
#endif | #endif | ||||
} else if (action == UNHOOK) { | } else if (action == UNHOOK) { | ||||
pfil_remove_hook(siftr_chkpkt, NULL, | pfil_remove_hook(siftr_chkpkt, NULL, | ||||
PFIL_IN | PFIL_OUT | PFIL_WAITOK, pfh_inet); | PFIL_IN | PFIL_FWD | PFIL_OUT | PFIL_WAITOK, | ||||
pfh_inet); | |||||
#ifdef SIFTR_IPV6 | #ifdef SIFTR_IPV6 | ||||
pfil_remove_hook(siftr_chkpkt6, NULL, | pfil_remove_hook(siftr_chkpkt6, NULL, | ||||
PFIL_IN | PFIL_OUT | PFIL_WAITOK, pfh_inet6); | PFIL_IN | PFIL_FWD | PFIL_OUT | PFIL_WAITOK, | ||||
pfh_inet6); | |||||
#endif | #endif | ||||
} | } | ||||
CURVNET_RESTORE(); | CURVNET_RESTORE(); | ||||
Context not available. |