Lines Matching defs:anchor
173 struct pf_anchor *anchor;
179 anchor = pf_find_anchor(path);
180 if (anchor == NULL)
183 return (&anchor->ruleset);
191 struct pf_anchor *anchor = NULL /* XXX gcc */;
207 parent = ruleset->anchor;
229 anchor = (struct pf_anchor *)rs_malloc(sizeof(*anchor));
230 if (anchor == NULL) {
234 memset(anchor, 0, sizeof(*anchor));
235 RB_INIT(&anchor->children);
236 strlcpy(anchor->name, q, sizeof(anchor->name));
238 strlcpy(anchor->path, parent->path,
239 sizeof(anchor->path));
240 strlcat(anchor->path, "/", sizeof(anchor->path));
242 strlcat(anchor->path, anchor->name, sizeof(anchor->path));
243 if ((dup = RB_INSERT(pf_anchor_global, &pf_anchors, anchor)) !=
247 anchor->path, anchor->name, dup->path, dup->name);
248 rs_free(anchor);
253 anchor->parent = parent;
255 anchor)) != NULL) {
258 "'%s' '%s'\n", anchor->path, anchor->name,
261 anchor);
262 rs_free(anchor);
267 pf_init_ruleset(&anchor->ruleset);
268 anchor->ruleset.anchor = anchor;
269 parent = anchor;
276 return (&anchor->ruleset);
286 if (ruleset == &pf_main_ruleset || ruleset->anchor == NULL ||
287 !RB_EMPTY(&ruleset->anchor->children) ||
288 ruleset->anchor->refcnt > 0 || ruleset->tables > 0 ||
296 RB_REMOVE(pf_anchor_global, &pf_anchors, ruleset->anchor);
297 if ((parent = ruleset->anchor->parent) != NULL)
299 ruleset->anchor);
300 rs_free(ruleset->anchor);
314 r->anchor = NULL;
326 if (s->anchor == NULL || !s->anchor->path[0])
329 strlcpy(path, s->anchor->path, MAXPATHLEN);
353 if (ruleset == NULL || ruleset->anchor == NULL) {
357 r->anchor = ruleset->anchor;
358 r->anchor->refcnt++;
367 if (r->anchor == NULL)
371 strlcat(pr->anchor_call, r->anchor->path,
379 if (rs->anchor == NULL)
382 strlcpy(a, rs->anchor->path, MAXPATHLEN);
390 if (strncmp(a, r->anchor->path, strlen(a))) {
392 r->anchor->path);
396 if (strlen(r->anchor->path) > strlen(a))
397 strlcat(pr->anchor_call, r->anchor->path + (a[0] ?
410 if (r->anchor == NULL)
412 if (r->anchor->refcnt <= 0) {
414 r->anchor = NULL;
417 if (!--r->anchor->refcnt)
418 pf_remove_if_empty_ruleset(&r->anchor->ruleset);
419 r->anchor = NULL;