diff options
author | Cedric Berger <cedric@cvs.openbsd.org> | 2003-06-08 09:41:09 +0000 |
---|---|---|
committer | Cedric Berger <cedric@cvs.openbsd.org> | 2003-06-08 09:41:09 +0000 |
commit | 7b563ed48a78c7df6b888d4a74d30fa1a6592c8d (patch) | |
tree | 480d3e9d72431a30db8b3c11a6b66d060d7f4b4e /sys/net/pf_ioctl.c | |
parent | 40a6c2c22cc1a18eeed2736e5a15603640dab733 (diff) |
A table in an anchor creates a real anchor: pfctl -sA works.
The following two pfctl functions work with an "-a" option:
- pfctl [-a foo[:bar]] -sT
- pfctl [-a foo[:bar]] -FT
ok dhartmei@
Diffstat (limited to 'sys/net/pf_ioctl.c')
-rw-r--r-- | sys/net/pf_ioctl.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/sys/net/pf_ioctl.c b/sys/net/pf_ioctl.c index ab2f76c8601..63bef915ec4 100644 --- a/sys/net/pf_ioctl.c +++ b/sys/net/pf_ioctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pf_ioctl.c,v 1.67 2003/06/03 12:34:04 henning Exp $ */ +/* $OpenBSD: pf_ioctl.c,v 1.68 2003/06/08 09:41:08 cedric Exp $ */ /* * Copyright (c) 2001 Daniel Hartmeier @@ -76,10 +76,6 @@ struct pf_pool *pf_get_pool(char *, char *, u_int32_t, u_int8_t, u_int8_t, u_int8_t, u_int8_t, u_int8_t); int pf_get_ruleset_number(u_int8_t); void pf_init_ruleset(struct pf_ruleset *); -struct pf_anchor *pf_find_anchor(const char *); -struct pf_ruleset *pf_find_ruleset(char *, char *); -struct pf_ruleset *pf_find_or_create_ruleset(char *, char *); -void pf_remove_if_empty_ruleset(struct pf_ruleset *); void pf_mv_pool(struct pf_palist *, struct pf_palist *); void pf_empty_pool(struct pf_palist *); int pfioctl(dev_t, u_long, caddr_t, int, struct proc *); @@ -354,7 +350,7 @@ pf_remove_if_empty_ruleset(struct pf_ruleset *ruleset) struct pf_anchor *anchor; int i; - if (ruleset == NULL || ruleset->anchor == NULL) + if (ruleset == NULL || ruleset->anchor == NULL || ruleset->tables > 0) return; for (i = 0; i < PF_RULESET_MAX; ++i) if (!TAILQ_EMPTY(ruleset->rules[i].active.ptr) || @@ -1883,7 +1879,8 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p) error = ENODEV; break; } - error = pfr_clr_tables(&io->pfrio_ndel, io->pfrio_flags); + error = pfr_clr_tables(&io->pfrio_table, &io->pfrio_ndel, + io->pfrio_flags); break; } @@ -1918,8 +1915,8 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p) error = ENODEV; break; } - error = pfr_get_tables(io->pfrio_buffer, &io->pfrio_size, - io->pfrio_flags); + error = pfr_get_tables(&io->pfrio_table, io->pfrio_buffer, + &io->pfrio_size, io->pfrio_flags); break; } @@ -1930,8 +1927,8 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p) error = ENODEV; break; } - error = pfr_get_tstats(io->pfrio_buffer, &io->pfrio_size, - io->pfrio_flags); + error = pfr_get_tstats(&io->pfrio_table, io->pfrio_buffer, + &io->pfrio_size, io->pfrio_flags); break; } |