MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pf_remove_if_empty_kruleset

Function pf_remove_if_empty_kruleset

freebsd/netpfil/pf/pf_ruleset.c:255–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

253}
254
255void
256pf_remove_if_empty_kruleset(struct pf_kruleset *ruleset)
257{
258 struct pf_kanchor *parent;
259 int i;
260
261 while (ruleset != NULL) {
262 if (ruleset == &pf_main_ruleset || ruleset->anchor == NULL ||
263 !RB_EMPTY(&ruleset->anchor->children) ||
264 ruleset->anchor->refcnt > 0 || ruleset->tables > 0 ||
265 ruleset->topen)
266 return;
267 for (i = 0; i < PF_RULESET_MAX; ++i)
268 if (!TAILQ_EMPTY(ruleset->rules[i].active.ptr) ||
269 !TAILQ_EMPTY(ruleset->rules[i].inactive.ptr) ||
270 ruleset->rules[i].inactive.open)
271 return;
272 RB_REMOVE(pf_kanchor_global, &V_pf_anchors, ruleset->anchor);
273 if ((parent = ruleset->anchor->parent) != NULL)
274 RB_REMOVE(pf_kanchor_node, &parent->children,
275 ruleset->anchor);
276 rs_free(ruleset->anchor);
277 if (parent == NULL)
278 return;
279 ruleset = &parent->ruleset;
280 }
281}
282
283int
284pf_kanchor_setup(struct pf_krule *r, const struct pf_kruleset *s,

Callers 8

pf_kanchor_removeFunction · 0.85
pfi_dynaddr_setupFunction · 0.85
pf_commit_rulesFunction · 0.85
pfioctlFunction · 0.85
pfr_ina_beginFunction · 0.85
pfr_ina_rollbackFunction · 0.85
pfr_ina_commitFunction · 0.85
pfr_destroy_ktableFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected