inactive
goto inactive;
inactive:
} active, inactive;
goto inactive;
goto inactive;
goto inactive;
goto inactive;
inactive:
TAILQ_CONCAT(dst->rules[i].inactive.ptr, src->rules[i].inactive.ptr, entries);
ruleset->rules[i].inactive.ptr = &ruleset->rules[i].queues[1];
!TAILQ_EMPTY(ruleset->rules[i].inactive.ptr) ||
ruleset->rules[i].inactive.open)
rs->rules[PF_RULESET_FILTER].inactive.ptr;
rs->rules[PF_RULESET_FILTER].inactive.ptr = old_rules;
while ((r = TAILQ_FIRST(rs->rules[PF_RULESET_FILTER].inactive.ptr))
TAILQ_REMOVE(rs->rules[PF_RULESET_FILTER].inactive.ptr, r,
sc->inactive = false;
sc->inactive = true;
sc->inactive = true;
if (sc->inactive)
bool inactive;
int error, *nargs, *hardcode, *inactive;
inactive = gctl_get_paraml(req, "inactive", sizeof(*inactive));
if (inactive == NULL) {
if (*inactive)
if (*inactive)
} active, inactive;
} active, inactive;
} active, inactive;
pf_rule_tree_free(rs->rules[rs_num].inactive.tree);
rs->rules[rs_num].inactive.tree = tree;
while ((rule = TAILQ_FIRST(rs->rules[rs_num].inactive.ptr)) != NULL) {
pf_unlink_rule(rs->rules[rs_num].inactive.ptr, rule);
rs->rules[rs_num].inactive.rcount--;
*ticket = ++rs->rules[rs_num].inactive.ticket;
rs->rules[rs_num].inactive.open = 1;
if (rs == NULL || !rs->rules[rs_num].inactive.open ||
rs->rules[rs_num].inactive.ticket != ticket)
while ((rule = TAILQ_FIRST(rs->rules[rs_num].inactive.ptr)) != NULL) {
pf_unlink_rule(rs->rules[rs_num].inactive.ptr, rule);
rs->rules[rs_num].inactive.rcount--;
rs->rules[rs_num].inactive.open = 0;
if (rs == NULL || !rs->rules[rs_num].inactive.open ||
ticket != rs->rules[rs_num].inactive.ticket)
rs->rules[rs_num].inactive.ptr;
rs->rules[rs_num].inactive.tree;
rs->rules[rs_num].inactive.rcount;
rs->rules[rs_num].inactive.ptr = old_rules;
rs->rules[rs_num].inactive.tree = NULL; /* important for pf_ioctl_addrule */
rs->rules[rs_num].inactive.rcount = old_rcount;
rs->rules[rs_num].inactive.ticket;
rs->rules[rs_num].inactive.rcount = 0;
rs->rules[rs_num].inactive.open = 0;
if (rs->rules[rs_cnt].inactive.rcount) {
TAILQ_FOREACH(rule, rs->rules[rs_cnt].inactive.ptr,
if (ioc->ticket != pf_main_ruleset.rules[PF_RULESET_FILTER].inactive.ticket) {
if (ioc->ticket != pf_main_ruleset.rules[PF_RULESET_FILTER].inactive.ticket) {
if (ticket != ruleset->rules[rs_num].inactive.ticket) {
ruleset->rules[rs_num].inactive.ticket);
if (ruleset->rules[rs_num].inactive.tree == NULL) {
tail = TAILQ_LAST(ruleset->rules[rs_num].inactive.ptr,
TAILQ_INSERT_TAIL(ruleset->rules[rs_num].inactive.ptr,
ruleset->rules[rs_num].inactive.rcount++;
RB_INSERT(pf_krule_global, ruleset->rules[rs_num].inactive.tree, rule);
ruleset->inactive.ticket) {
ruleset->inactive.ticket);
tail = TAILQ_LAST(ruleset->inactive.rules, pf_keth_ruleq);
TAILQ_INSERT_TAIL(ruleset->inactive.rules, rule, entries);
ruleset->rules[rs_num].inactive.ticket)
rule = TAILQ_LAST(ruleset->rules[rs_num].inactive.ptr,
rule = TAILQ_FIRST(ruleset->rules[rs_num].inactive.ptr);
ioe->ticket != ers->inactive.ticket) {
!rs->rules[ioe->rs_num].inactive.open ||
rs->rules[ioe->rs_num].inactive.ticket !=
pf_rule_tree_free(pf_main_ruleset.rules[i].inactive.tree);
TAILQ_FOREACH_SAFE(rule, rs->inactive.rules, entries,
TAILQ_REMOVE(rs->inactive.rules, rule,
*ticket = ++rs->inactive.ticket;
rs->inactive.open = 1;
if (!rs->inactive.open ||
ticket != rs->inactive.ticket)
TAILQ_FOREACH_SAFE(rule, rs->inactive.rules, entries,
TAILQ_REMOVE(rs->inactive.rules, rule, entries);
rs->inactive.open = 0;
if (!rs->inactive.open ||
ticket != rs->inactive.ticket)
pf_eth_calc_skip_steps(rs->inactive.rules);
atomic_store_ptr(&rs->active.rules, rs->inactive.rules);
rs->inactive.rules = rules;
rs->inactive.ticket = rs->active.ticket;
return (pf_rollback_eth(rs->inactive.ticket,
ruleset->rules[i].inactive.ptr = &ruleset->rules[i].queues[1];
rs->inactive.rules = &rs->rules[1];
rs->inactive.open = 0;
!TAILQ_EMPTY(ruleset->rules[i].inactive.ptr) ||
ruleset->rules[i].inactive.open)
pf_rule_tree_free(ruleset->rules[i].inactive.tree);
ruleset->rules[i].inactive.tree = NULL;
!TAILQ_EMPTY(ruleset->inactive.rules) ||
ruleset->inactive.open)
goto inactive;
goto inactive;
goto inactive;
inactive: