update to iptables-1.3.8
[iptables.git] / iptables-standalone.c
index 8a4c90e..e5c7841 100644 (file)
 #include <string.h>
 #include <iptables.h>
 
+#ifdef IPTABLES_MULTI
+int
+iptables_main(int argc, char *argv[])
+#else
 int
 main(int argc, char *argv[])
+#endif
 {
        int ret;
        char *table = "filter";
@@ -47,6 +52,10 @@ main(int argc, char *argv[])
        program_name = "iptables";
        program_version = IPTABLES_VERSION;
 
+       lib_dir = getenv("IPTABLES_LIB_DIR");
+       if (!lib_dir)
+               lib_dir = IPT_LIB_DIR;
+
 #ifdef NO_SHARED_LIBS
        init_extensions();
 #endif
@@ -55,9 +64,13 @@ main(int argc, char *argv[])
        if (ret)
                ret = iptc_commit(&handle);
 
-       if (!ret)
+       if (!ret) {
                fprintf(stderr, "iptables: %s\n",
                        iptc_strerror(errno));
+               if (errno == EAGAIN) {
+                       exit(RESOURCE_PROBLEM);
+               }
+       }
 
        exit(!ret);
 }