Lines Matching refs:anchor

204 	struct pf_anchor        *anchor;  in pf_find_ruleset()  local
212 anchor = pf_find_anchor(path); in pf_find_ruleset()
213 if (anchor == NULL) { in pf_find_ruleset()
216 return &anchor->ruleset; in pf_find_ruleset()
224 struct pf_anchor *anchor; in pf_find_ruleset_with_owner() local
232 anchor = pf_find_anchor(path); in pf_find_ruleset_with_owner()
233 if (anchor == NULL) { in pf_find_ruleset_with_owner()
237 if ((owner && (!strcmp(owner, anchor->owner))) in pf_find_ruleset_with_owner()
238 || (is_anchor && !strcmp(anchor->owner, ""))) { in pf_find_ruleset_with_owner()
239 return &anchor->ruleset; in pf_find_ruleset_with_owner()
251 struct pf_anchor *anchor = 0, *dup, *parent = NULL; in pf_find_or_create_ruleset() local
268 parent = ruleset->anchor; in pf_find_or_create_ruleset()
292 anchor = rs_malloc_type(struct pf_anchor); in pf_find_or_create_ruleset()
293 if (anchor == NULL) { in pf_find_or_create_ruleset()
297 RB_INIT(&anchor->children); in pf_find_or_create_ruleset()
298 strlcpy(anchor->name, q, sizeof(anchor->name)); in pf_find_or_create_ruleset()
300 strlcpy(anchor->path, parent->path, in pf_find_or_create_ruleset()
301 sizeof(anchor->path)); in pf_find_or_create_ruleset()
302 strlcat(anchor->path, "/", sizeof(anchor->path)); in pf_find_or_create_ruleset()
304 strlcat(anchor->path, anchor->name, sizeof(anchor->path)); in pf_find_or_create_ruleset()
305 if ((dup = RB_INSERT(pf_anchor_global, &pf_anchors, anchor)) != in pf_find_or_create_ruleset()
309 anchor->path, anchor->name, dup->path, dup->name); in pf_find_or_create_ruleset()
310 rs_free_type(struct pf_anchor, anchor); in pf_find_or_create_ruleset()
315 anchor->parent = parent; in pf_find_or_create_ruleset()
317 anchor)) != NULL) { in pf_find_or_create_ruleset()
320 "'%s' '%s'\n", anchor->path, anchor->name, in pf_find_or_create_ruleset()
323 anchor); in pf_find_or_create_ruleset()
324 rs_free_type(struct pf_anchor, anchor); in pf_find_or_create_ruleset()
329 pf_init_ruleset(&anchor->ruleset); in pf_find_or_create_ruleset()
330 anchor->ruleset.anchor = anchor; in pf_find_or_create_ruleset()
331 parent = anchor; in pf_find_or_create_ruleset()
338 if (strncmp("com.apple.nlc", anchor->name, in pf_find_or_create_ruleset()
345 return anchor ? &anchor->ruleset : 0; in pf_find_or_create_ruleset()
355 if (ruleset == &pf_main_ruleset || ruleset->anchor == NULL || in pf_remove_if_empty_ruleset()
356 !RB_EMPTY(&ruleset->anchor->children) || in pf_remove_if_empty_ruleset()
357 ruleset->anchor->refcnt > 0 || ruleset->tables > 0 || in pf_remove_if_empty_ruleset()
368 RB_REMOVE(pf_anchor_global, &pf_anchors, ruleset->anchor); in pf_remove_if_empty_ruleset()
370 if (strncmp("com.apple.nlc", ruleset->anchor->name, in pf_remove_if_empty_ruleset()
379 if ((parent = ruleset->anchor->parent) != NULL) { in pf_remove_if_empty_ruleset()
381 ruleset->anchor); in pf_remove_if_empty_ruleset()
383 rs_free_type(struct pf_anchor, ruleset->anchor); in pf_remove_if_empty_ruleset()
398 r->anchor = NULL; in pf_anchor_setup()
410 if (s->anchor == NULL || !s->anchor->path[0]) { in pf_anchor_setup()
413 strlcpy(path, s->anchor->path, MAXPATHLEN); in pf_anchor_setup()
440 if (ruleset == NULL || ruleset->anchor == NULL) { in pf_anchor_setup()
444 r->anchor = ruleset->anchor; in pf_anchor_setup()
445 r->anchor->refcnt++; in pf_anchor_setup()
454 if (r->anchor == NULL) { in pf_anchor_copyout()
459 strlcat(pr->anchor_call, r->anchor->path, in pf_anchor_copyout()
466 if (rs->anchor == NULL) { in pf_anchor_copyout()
469 strlcpy(a, rs->anchor->path, MAXPATHLEN); in pf_anchor_copyout()
479 if (strncmp(a, r->anchor->path, strlen(a))) { in pf_anchor_copyout()
481 r->anchor->path); in pf_anchor_copyout()
485 if (strlen(r->anchor->path) > strlen(a)) { in pf_anchor_copyout()
486 strlcat(pr->anchor_call, r->anchor->path + (a[0] ? in pf_anchor_copyout()
501 if (r->anchor == NULL) { in pf_anchor_remove()
504 if (r->anchor->refcnt <= 0) { in pf_anchor_remove()
506 r->anchor = NULL; in pf_anchor_remove()
509 if (!--r->anchor->refcnt) { in pf_anchor_remove()
510 pf_remove_if_empty_ruleset(&r->anchor->ruleset); in pf_anchor_remove()
512 r->anchor = NULL; in pf_anchor_remove()