Restore iptables-save include functionality
[project/firewall3.git] / utils.c
diff --git a/utils.c b/utils.c
index 5ba5d9e..ea40974 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -132,6 +132,32 @@ info(const char* format, ...)
        fprintf(stderr, "\n");
 }
 
+void *
+fw3_alloc(size_t size)
+{
+       void *mem;
+
+       mem = calloc(1, size);
+
+       if (!mem)
+               error("Out of memory while allocating %d bytes", size);
+
+       return mem;
+}
+
+char *
+fw3_strdup(const char *s)
+{
+       char *ns;
+
+       ns = strdup(s);
+
+       if (!ns)
+               error("Out of memory while duplicating string '%s'", s);
+
+       return ns;
+}
+
 const char *
 fw3_find_command(const char *cmd)
 {
@@ -602,6 +628,7 @@ fw3_write_statefile(void *state)
                        uci_unload(s->uci, p);
                }
 
+               fsync(fileno(sf));
                fclose(sf);
        }
 }
@@ -631,43 +658,6 @@ fw3_free_object(void *obj, const void *opts)
 
 
 bool
-fw3_pr_rulespec(int table, int family, uint32_t *flags, uint32_t mask,
-                const struct fw3_rule_spec *r, const char *fmt, ...)
-{
-       char buf[256];
-       bool rv = false;
-
-       va_list ap;
-       uint32_t f = flags ? flags[family == FW3_FAMILY_V6] : 0;
-
-       if (mask)
-               f &= mask;
-
-       for (; r->format; r++)
-       {
-               if (!fw3_is_family(r, family))
-                       continue;
-
-               if (r->table != table)
-                       continue;
-
-               if ((r->flag != 0) && !hasbit(f, r->flag))
-                       continue;
-
-               va_start(ap, fmt);
-               vsnprintf(buf, sizeof(buf), r->format, ap);
-               va_end(ap);
-
-               fw3_pr(fmt, buf);
-
-               rv = true;
-       }
-
-       return rv;
-}
-
-
-bool
 fw3_hotplug(bool add, void *zone, void *device)
 {
        struct fw3_zone *z = zone;