|
Lines 102-108
int pfctl_show_anchors(int, int, char *);
Link Here
|
| 102 |
int pfctl_ruleset_trans(struct pfctl *, char *, struct pf_anchor *); |
102 |
int pfctl_ruleset_trans(struct pfctl *, char *, struct pf_anchor *); |
| 103 |
int pfctl_load_ruleset(struct pfctl *, char *, |
103 |
int pfctl_load_ruleset(struct pfctl *, char *, |
| 104 |
struct pf_ruleset *, int, int); |
104 |
struct pf_ruleset *, int, int); |
| 105 |
int pfctl_load_rule(struct pfctl *, char *, struct pf_rule *, int); |
105 |
int pfctl_load_rule(struct pfctl *, const char *, struct pf_rule *, int); |
| 106 |
const char *pfctl_lookup_option(char *, const char **); |
106 |
const char *pfctl_lookup_option(char *, const char **); |
| 107 |
|
107 |
|
| 108 |
struct pf_anchor_global pf_anchors; |
108 |
struct pf_anchor_global pf_anchors; |
|
Lines 1322-1333
pfctl_load_ruleset(struct pfctl *pf, char *path, struct pf_ruleset *rs,
Link Here
|
| 1322 |
} |
1322 |
} |
| 1323 |
|
1323 |
|
| 1324 |
int |
1324 |
int |
| 1325 |
pfctl_load_rule(struct pfctl *pf, char *path, struct pf_rule *r, int depth) |
1325 |
pfctl_load_rule(struct pfctl *pf, const char *path, struct pf_rule *r, int depth) |
| 1326 |
{ |
1326 |
{ |
| 1327 |
u_int8_t rs_num = pf_get_ruleset_number(r->action); |
1327 |
u_int8_t rs_num = pf_get_ruleset_number(r->action); |
| 1328 |
char *name; |
1328 |
char *name; |
| 1329 |
struct pfioc_rule pr; |
1329 |
struct pfioc_rule pr; |
| 1330 |
int len = strlen(path); |
|
|
| 1331 |
|
1330 |
|
| 1332 |
bzero(&pr, sizeof(pr)); |
1331 |
bzero(&pr, sizeof(pr)); |
| 1333 |
/* set up anchor before adding to path for anchor_call */ |
1332 |
/* set up anchor before adding to path for anchor_call */ |
|
Lines 1337-1351
pfctl_load_rule(struct pfctl *pf, char *path, struct pf_rule *r, int depth)
Link Here
|
| 1337 |
errx(1, "pfctl_load_rule: strlcpy"); |
1336 |
errx(1, "pfctl_load_rule: strlcpy"); |
| 1338 |
|
1337 |
|
| 1339 |
if (r->anchor) { |
1338 |
if (r->anchor) { |
| 1340 |
if (r->anchor->match) { |
1339 |
if (r->anchor->match) |
| 1341 |
if (path[0]) |
1340 |
name = r->anchor->name; |
| 1342 |
snprintf(&path[len], MAXPATHLEN - len, |
1341 |
else |
| 1343 |
"/%s", r->anchor->name); |
|
|
| 1344 |
else |
| 1345 |
snprintf(&path[len], MAXPATHLEN - len, |
| 1346 |
"%s", r->anchor->name); |
| 1347 |
name = path; |
| 1348 |
} else |
| 1349 |
name = r->anchor->path; |
1342 |
name = r->anchor->path; |
| 1350 |
} else |
1343 |
} else |
| 1351 |
name = ""; |
1344 |
name = ""; |
|
Lines 1368-1374
pfctl_load_rule(struct pfctl *pf, char *path, struct pf_rule *r, int depth)
Link Here
|
| 1368 |
pf->opts & PF_OPT_VERBOSE2, |
1361 |
pf->opts & PF_OPT_VERBOSE2, |
| 1369 |
pf->opts & PF_OPT_NUMERIC); |
1362 |
pf->opts & PF_OPT_NUMERIC); |
| 1370 |
} |
1363 |
} |
| 1371 |
path[len] = '\0'; |
|
|
| 1372 |
pfctl_clear_pool(&r->rpool); |
1364 |
pfctl_clear_pool(&r->rpool); |
| 1373 |
return (0); |
1365 |
return (0); |
| 1374 |
} |
1366 |
} |