Lines Matching defs:newrule
3639 struct pf_krule *oldrule = NULL, *newrule = NULL;
3658 newrule = pf_krule_alloc();
3659 error = pf_rule_to_krule(&pcr->rule, newrule);
3661 pf_krule_free(newrule);
3665 if (newrule->ifname[0])
3667 pf_counter_u64_init(&newrule->evaluations, M_WAITOK);
3669 pf_counter_u64_init(&newrule->packets[i], M_WAITOK);
3670 pf_counter_u64_init(&newrule->bytes[i], M_WAITOK);
3672 newrule->states_cur = counter_u64_alloc(M_WAITOK);
3673 newrule->states_tot = counter_u64_alloc(M_WAITOK);
3674 newrule->src_nodes = counter_u64_alloc(M_WAITOK);
3675 newrule->cuid = td->td_ucred->cr_ruid;
3676 newrule->cpid = td->td_proc ? td->td_proc->p_pid : 0;
3677 TAILQ_INIT(&newrule->nat.list);
3678 TAILQ_INIT(&newrule->rdr.list);
3679 TAILQ_INIT(&newrule->route.list);
3686 if (newrule != NULL) {
3687 LIST_INSERT_HEAD(&V_pf_allrulelist, newrule, allrulelist);
3688 newrule->allrulelinked = true;
3730 if (newrule->ifname[0]) {
3731 newrule->kif = pfi_kkif_attach(kif,
3732 newrule->ifname);
3734 pfi_kkif_ref(newrule->kif);
3736 newrule->kif = NULL;
3738 if (newrule->rtableid > 0 &&
3739 newrule->rtableid >= rt_numfibs)
3744 if (newrule->qname[0] != 0) {
3745 if ((newrule->qid =
3746 pf_qname2qid(newrule->qname)) == 0)
3748 else if (newrule->pqname[0] != 0) {
3749 if ((newrule->pqid =
3750 pf_qname2qid(newrule->pqname)) == 0)
3753 newrule->pqid = newrule->qid;
3756 if (newrule->tagname[0])
3757 if ((newrule->tag =
3758 pf_tagname2tag(newrule->tagname)) == 0)
3760 if (newrule->match_tagname[0])
3761 if ((newrule->match_tag = pf_tagname2tag(
3762 newrule->match_tagname)) == 0)
3764 if (newrule->rt && !newrule->direction)
3766 if (!newrule->log)
3767 newrule->logif = 0;
3768 if (pf_addr_setup(ruleset, &newrule->src.addr, newrule->af))
3770 if (pf_addr_setup(ruleset, &newrule->dst.addr, newrule->af))
3772 if (pf_kanchor_setup(newrule, ruleset, pcr->anchor_call))
3785 newrule->overload_tbl = NULL;
3786 if (newrule->overload_tblname[0]) {
3787 if ((newrule->overload_tbl = pfr_attach_table(
3788 ruleset, newrule->overload_tblname)) ==
3792 newrule->overload_tbl->pfrkt_flags |=
3796 pf_mv_kpool(&V_pf_pabuf[0], &newrule->nat.list);
3797 pf_mv_kpool(&V_pf_pabuf[1], &newrule->rdr.list);
3798 pf_mv_kpool(&V_pf_pabuf[2], &newrule->route.list);
3799 if (((((newrule->action == PF_NAT) ||
3800 (newrule->action == PF_RDR) ||
3801 (newrule->action == PF_BINAT) ||
3802 (newrule->rt > PF_NOPFROUTE)) &&
3803 !newrule->anchor)) &&
3804 (TAILQ_FIRST(&newrule->rdr.list) == NULL))
3808 pf_free_rule(newrule);
3814 newrule->nat.cur = TAILQ_FIRST(&newrule->nat.list);
3815 newrule->rdr.cur = TAILQ_FIRST(&newrule->rdr.list);
3833 if (newrule != NULL)
3834 pf_free_rule(newrule);
3849 pf_hash_rule(newrule);
3851 ruleset->rules[rs_num].active.tree, newrule) != NULL) {
3852 pf_free_rule(newrule);
3862 newrule, entries);
3865 TAILQ_INSERT_BEFORE(oldrule, newrule, entries);
3869 oldrule, newrule, entries);
3891 pf_krule_free(newrule);