Lines Matching refs:newrule

3746 		struct pf_krule		*oldrule = NULL, *newrule = NULL;  in pfioctl()  local
3765 newrule = pf_krule_alloc(); in pfioctl()
3766 error = pf_rule_to_krule(&pcr->rule, newrule); in pfioctl()
3768 pf_krule_free(newrule); in pfioctl()
3772 if ((error = pf_rule_checkaf(newrule))) { in pfioctl()
3773 pf_krule_free(newrule); in pfioctl()
3776 if (newrule->ifname[0]) in pfioctl()
3778 pf_counter_u64_init(&newrule->evaluations, M_WAITOK); in pfioctl()
3780 pf_counter_u64_init(&newrule->packets[i], M_WAITOK); in pfioctl()
3781 pf_counter_u64_init(&newrule->bytes[i], M_WAITOK); in pfioctl()
3783 newrule->states_cur = counter_u64_alloc(M_WAITOK); in pfioctl()
3784 newrule->states_tot = counter_u64_alloc(M_WAITOK); in pfioctl()
3786 newrule->src_nodes[sn_type] = counter_u64_alloc(M_WAITOK); in pfioctl()
3787 newrule->cuid = td->td_ucred->cr_ruid; in pfioctl()
3788 newrule->cpid = td->td_proc ? td->td_proc->p_pid : 0; in pfioctl()
3789 TAILQ_INIT(&newrule->nat.list); in pfioctl()
3790 TAILQ_INIT(&newrule->rdr.list); in pfioctl()
3791 TAILQ_INIT(&newrule->route.list); in pfioctl()
3798 if (newrule != NULL) { in pfioctl()
3799 LIST_INSERT_HEAD(&V_pf_allrulelist, newrule, allrulelist); in pfioctl()
3800 newrule->allrulelinked = true; in pfioctl()
3842 if (newrule->ifname[0]) { in pfioctl()
3843 newrule->kif = pfi_kkif_attach(kif, in pfioctl()
3844 newrule->ifname); in pfioctl()
3846 pfi_kkif_ref(newrule->kif); in pfioctl()
3848 newrule->kif = NULL; in pfioctl()
3850 if (newrule->rtableid > 0 && in pfioctl()
3851 newrule->rtableid >= rt_numfibs) in pfioctl()
3856 if (newrule->qname[0] != 0) { in pfioctl()
3857 if ((newrule->qid = in pfioctl()
3858 pf_qname2qid(newrule->qname)) == 0) in pfioctl()
3860 else if (newrule->pqname[0] != 0) { in pfioctl()
3861 if ((newrule->pqid = in pfioctl()
3862 pf_qname2qid(newrule->pqname)) == 0) in pfioctl()
3865 newrule->pqid = newrule->qid; in pfioctl()
3868 if (newrule->tagname[0]) in pfioctl()
3869 if ((newrule->tag = in pfioctl()
3870 pf_tagname2tag(newrule->tagname)) == 0) in pfioctl()
3872 if (newrule->match_tagname[0]) in pfioctl()
3873 if ((newrule->match_tag = pf_tagname2tag( in pfioctl()
3874 newrule->match_tagname)) == 0) in pfioctl()
3876 if (newrule->rt && !newrule->direction) in pfioctl()
3878 if (!newrule->log) in pfioctl()
3879 newrule->logif = 0; in pfioctl()
3880 if (pf_addr_setup(ruleset, &newrule->src.addr, newrule->af)) in pfioctl()
3882 if (pf_addr_setup(ruleset, &newrule->dst.addr, newrule->af)) in pfioctl()
3884 if (pf_kanchor_setup(newrule, ruleset, pcr->anchor_call)) in pfioctl()
3897 newrule->overload_tbl = NULL; in pfioctl()
3898 if (newrule->overload_tblname[0]) { in pfioctl()
3899 if ((newrule->overload_tbl = pfr_attach_table( in pfioctl()
3900 ruleset, newrule->overload_tblname)) == in pfioctl()
3904 newrule->overload_tbl->pfrkt_flags |= in pfioctl()
3908 pf_mv_kpool(&V_pf_pabuf[0], &newrule->nat.list); in pfioctl()
3909 pf_mv_kpool(&V_pf_pabuf[1], &newrule->rdr.list); in pfioctl()
3910 pf_mv_kpool(&V_pf_pabuf[2], &newrule->route.list); in pfioctl()
3911 if (((((newrule->action == PF_NAT) || in pfioctl()
3912 (newrule->action == PF_RDR) || in pfioctl()
3913 (newrule->action == PF_BINAT) || in pfioctl()
3914 (newrule->rt > PF_NOPFROUTE)) && in pfioctl()
3915 !newrule->anchor)) && in pfioctl()
3916 (TAILQ_FIRST(&newrule->rdr.list) == NULL)) in pfioctl()
3920 pf_free_rule(newrule); in pfioctl()
3926 newrule->nat.cur = TAILQ_FIRST(&newrule->nat.list); in pfioctl()
3927 newrule->rdr.cur = TAILQ_FIRST(&newrule->rdr.list); in pfioctl()
3945 if (newrule != NULL) in pfioctl()
3946 pf_free_rule(newrule); in pfioctl()
3961 pf_hash_rule(newrule); in pfioctl()
3963 ruleset->rules[rs_num].active.tree, newrule) != NULL) { in pfioctl()
3964 pf_free_rule(newrule); in pfioctl()
3974 newrule, entries); in pfioctl()
3977 TAILQ_INSERT_BEFORE(oldrule, newrule, entries); in pfioctl()
3981 oldrule, newrule, entries); in pfioctl()
4003 pf_krule_free(newrule); in pfioctl()