summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ipsets.c3
-rw-r--r--utils.c4
-rw-r--r--utils.h3
-rw-r--r--zones.c3
4 files changed, 6 insertions, 7 deletions
diff --git a/ipsets.c b/ipsets.c
index d6ff9bd..a987790 100644
--- a/ipsets.c
+++ b/ipsets.c
@@ -376,14 +376,13 @@ void
fw3_destroy_ipsets(struct fw3_state *state, enum fw3_family family)
{
struct fw3_ipset *s, *tmp;
- uint32_t family_mask = (1 << FW3_FAMILY_V4) | (1 << FW3_FAMILY_V6);
list_for_each_entry_safe(s, tmp, &state->running_ipsets, running_list)
{
if (hasbit(s->running_flags, family))
delbit(s->flags, family);
- if (!(s->flags & family_mask))
+ if (fw3_no_family(s))
{
info("Deleting ipset %s", s->name);
diff --git a/utils.c b/utils.c
index ce9049e..2747a85 100644
--- a/utils.c
+++ b/utils.c
@@ -441,9 +441,7 @@ fw3_write_statefile(void *state)
struct fw3_zone *z;
struct fw3_ipset *i;
- int mask = (1 << FW3_FAMILY_V4) | (1 << FW3_FAMILY_V6);
-
- if (!(d->flags & mask))
+ if (fw3_no_family(d))
{
if (unlink(FW3_STATEFILE))
warn("Unable to remove state %s: %s",
diff --git a/utils.h b/utils.h
index 43f30f4..79bf394 100644
--- a/utils.h
+++ b/utils.h
@@ -55,6 +55,9 @@ void info(const char *format, ...);
#define fw3_is_family(p, f) \
(!p || (p)->family == FW3_FAMILY_ANY || (p)->family == f)
+#define fw3_no_family(p) \
+ (!p || !((p)->flags & ((1 << FW3_FAMILY_V4) | (1 << FW3_FAMILY_V6))))
+
const char * fw3_find_command(const char *cmd);
bool fw3_stdout_pipe(void);
diff --git a/zones.c b/zones.c
index c47391c..ab656ef 100644
--- a/zones.c
+++ b/zones.c
@@ -540,7 +540,6 @@ fw3_flush_zones(enum fw3_table table, enum fw3_family family,
{
struct fw3_zone *z, *tmp;
uint32_t custom_mask = ~0;
- uint32_t family_mask = (1 << FW3_FAMILY_V4) | (1 << FW3_FAMILY_V6);
/* don't touch user chains on selective stop */
if (reload)
@@ -566,7 +565,7 @@ fw3_flush_zones(enum fw3_table table, enum fw3_family family,
{
delbit(z->flags, family);
- if (!(z->flags & family_mask))
+ if (fw3_no_family(z))
fw3_set_running(z, NULL);
}
}