Lines Matching refs:ioe
4188 struct pfioc_trans_e *ioe; in pfioctl_ioc_trans() local
4192 if (esize != sizeof(*ioe)) { in pfioctl_ioc_trans()
4196 ioe = kalloc_type(struct pfioc_trans_e, Z_WAITOK); in pfioctl_ioc_trans()
4198 for (i = 0; i < size; i++, buf += sizeof(*ioe)) { in pfioctl_ioc_trans()
4199 if (copyin(buf, ioe, sizeof(*ioe))) { in pfioctl_ioc_trans()
4201 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4205 ioe->anchor[sizeof(ioe->anchor) - 1] = '\0'; in pfioctl_ioc_trans()
4206 switch (ioe->rs_num) { in pfioctl_ioc_trans()
4211 strlcpy(table->pfrt_anchor, ioe->anchor, in pfioctl_ioc_trans()
4214 &ioe->ticket, NULL, 0))) { in pfioctl_ioc_trans()
4216 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4221 if ((error = pf_begin_rules(&ioe->ticket, in pfioctl_ioc_trans()
4222 ioe->rs_num, ioe->anchor))) { in pfioctl_ioc_trans()
4224 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4229 if (copyout(ioe, buf, sizeof(*ioe))) { in pfioctl_ioc_trans()
4231 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4237 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4242 struct pfioc_trans_e *ioe; in pfioctl_ioc_trans() local
4246 if (esize != sizeof(*ioe)) { in pfioctl_ioc_trans()
4250 ioe = kalloc_type(struct pfioc_trans_e, Z_WAITOK); in pfioctl_ioc_trans()
4252 for (i = 0; i < size; i++, buf += sizeof(*ioe)) { in pfioctl_ioc_trans()
4253 if (copyin(buf, ioe, sizeof(*ioe))) { in pfioctl_ioc_trans()
4255 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4259 ioe->anchor[sizeof(ioe->anchor) - 1] = '\0'; in pfioctl_ioc_trans()
4260 switch (ioe->rs_num) { in pfioctl_ioc_trans()
4265 strlcpy(table->pfrt_anchor, ioe->anchor, in pfioctl_ioc_trans()
4268 ioe->ticket, NULL, 0))) { in pfioctl_ioc_trans()
4270 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4275 if ((error = pf_rollback_rules(ioe->ticket, in pfioctl_ioc_trans()
4276 ioe->rs_num, ioe->anchor))) { in pfioctl_ioc_trans()
4278 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4285 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4290 struct pfioc_trans_e *ioe; in pfioctl_ioc_trans() local
4295 if (esize != sizeof(*ioe)) { in pfioctl_ioc_trans()
4299 ioe = kalloc_type(struct pfioc_trans_e, Z_WAITOK); in pfioctl_ioc_trans()
4302 for (i = 0; i < size; i++, buf += sizeof(*ioe)) { in pfioctl_ioc_trans()
4303 if (copyin(buf, ioe, sizeof(*ioe))) { in pfioctl_ioc_trans()
4305 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4309 ioe->anchor[sizeof(ioe->anchor) - 1] = '\0'; in pfioctl_ioc_trans()
4310 switch (ioe->rs_num) { in pfioctl_ioc_trans()
4314 rs = pf_find_ruleset(ioe->anchor); in pfioctl_ioc_trans()
4315 if (rs == NULL || !rs->topen || ioe->ticket != in pfioctl_ioc_trans()
4318 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4324 if (ioe->rs_num < 0 || ioe->rs_num >= in pfioctl_ioc_trans()
4327 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4331 rs = pf_find_ruleset(ioe->anchor); in pfioctl_ioc_trans()
4333 !rs->rules[ioe->rs_num].inactive.open || in pfioctl_ioc_trans()
4334 rs->rules[ioe->rs_num].inactive.ticket != in pfioctl_ioc_trans()
4335 ioe->ticket) { in pfioctl_ioc_trans()
4337 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4346 for (i = 0; i < size; i++, buf += sizeof(*ioe)) { in pfioctl_ioc_trans()
4347 if (copyin(buf, ioe, sizeof(*ioe))) { in pfioctl_ioc_trans()
4349 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4353 ioe->anchor[sizeof(ioe->anchor) - 1] = '\0'; in pfioctl_ioc_trans()
4354 switch (ioe->rs_num) { in pfioctl_ioc_trans()
4359 strlcpy(table->pfrt_anchor, ioe->anchor, in pfioctl_ioc_trans()
4361 if ((error = pfr_ina_commit(table, ioe->ticket, in pfioctl_ioc_trans()
4364 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4369 if ((error = pf_commit_rules(ioe->ticket, in pfioctl_ioc_trans()
4370 ioe->rs_num, ioe->anchor))) { in pfioctl_ioc_trans()
4372 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()
4379 kfree_type(struct pfioc_trans_e, ioe); in pfioctl_ioc_trans()