Changeset View
Changeset View
Standalone View
Standalone View
sys/netpfil/pf/pf_ioctl.c
Show First 20 Lines • Show All 2,435 Lines • ▼ Show 20 Lines | pf_nvstate_kill_to_kstate_kill(const nvlist_t *nvl, | ||||
if (! nvlist_exists_nvlist(nvl, "src")) | if (! nvlist_exists_nvlist(nvl, "src")) | ||||
return (EINVAL); | return (EINVAL); | ||||
PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "src"), | PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "src"), | ||||
&kill->psk_src)); | &kill->psk_src)); | ||||
if (! nvlist_exists_nvlist(nvl, "dst")) | if (! nvlist_exists_nvlist(nvl, "dst")) | ||||
return (EINVAL); | return (EINVAL); | ||||
PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "dst"), | PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "dst"), | ||||
&kill->psk_dst)); | &kill->psk_dst)); | ||||
if (nvlist_exists_nvlist(nvl, "rt_addr")) { | |||||
PFNV_CHK(pf_nvrule_addr_to_rule_addr( | |||||
nvlist_get_nvlist(nvl, "rt_addr"), &kill->psk_rt_addr)); | |||||
} | |||||
PFNV_CHK(pf_nvstring(nvl, "ifname", kill->psk_ifname, | PFNV_CHK(pf_nvstring(nvl, "ifname", kill->psk_ifname, | ||||
sizeof(kill->psk_ifname))); | sizeof(kill->psk_ifname))); | ||||
PFNV_CHK(pf_nvstring(nvl, "label", kill->psk_label, | PFNV_CHK(pf_nvstring(nvl, "label", kill->psk_label, | ||||
sizeof(kill->psk_label))); | sizeof(kill->psk_label))); | ||||
errout: | errout: | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 203 Lines • ▼ Show 20 Lines | if (psk->psk_proto && psk->psk_proto != sk->proto) | ||||
continue; | continue; | ||||
if (! PF_MATCHA(psk->psk_src.neg, &psk->psk_src.addr.v.a.addr, | if (! PF_MATCHA(psk->psk_src.neg, &psk->psk_src.addr.v.a.addr, | ||||
&psk->psk_src.addr.v.a.mask, srcaddr, sk->af)) | &psk->psk_src.addr.v.a.mask, srcaddr, sk->af)) | ||||
continue; | continue; | ||||
if (! PF_MATCHA(psk->psk_dst.neg, &psk->psk_dst.addr.v.a.addr, | if (! PF_MATCHA(psk->psk_dst.neg, &psk->psk_dst.addr.v.a.addr, | ||||
&psk->psk_dst.addr.v.a.mask, dstaddr, sk->af)) | &psk->psk_dst.addr.v.a.mask, dstaddr, sk->af)) | ||||
continue; | |||||
if (! PF_MATCHA(psk->psk_rt_addr.neg, | |||||
&psk->psk_rt_addr.addr.v.a.addr, | |||||
&psk->psk_rt_addr.addr.v.a.mask, | |||||
&s->rt_addr, sk->af)) | |||||
continue; | continue; | ||||
if (psk->psk_src.port_op != 0 && | if (psk->psk_src.port_op != 0 && | ||||
! pf_match_port(psk->psk_src.port_op, | ! pf_match_port(psk->psk_src.port_op, | ||||
psk->psk_src.port[0], psk->psk_src.port[1], srcport)) | psk->psk_src.port[0], psk->psk_src.port[1], srcport)) | ||||
continue; | continue; | ||||
if (psk->psk_dst.port_op != 0 && | if (psk->psk_dst.port_op != 0 && | ||||
▲ Show 20 Lines • Show All 3,299 Lines • Show Last 20 Lines |