summaryrefslogtreecommitdiff
path: root/tools/iptables-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/iptables-test.c')
-rw-r--r--tools/iptables-test.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/iptables-test.c b/tools/iptables-test.c
index a7193c2e..887fd3ce 100644
--- a/tools/iptables-test.c
+++ b/tools/iptables-test.c
@@ -1137,9 +1137,22 @@ static int add_entry(struct ipt_entry *entry, struct connman_iptables *table)
static struct connman_iptables *connman_iptables_init(const char *table_name)
{
- struct connman_iptables *table;
+ struct connman_iptables *table = NULL;
+ char *module = NULL;
socklen_t s;
+ if (xtables_insmod("ip_tables", NULL, TRUE) != 0)
+ goto err;
+
+ module = g_strconcat("iptable_", table_name, NULL);
+ if (module == NULL)
+ goto err;
+
+ if (xtables_insmod(module, NULL, TRUE) != 0)
+ goto err;
+
+ g_free(module);
+
table = g_try_new0(struct connman_iptables, 1);
if (table == NULL)
return NULL;
@@ -1182,10 +1195,10 @@ static struct connman_iptables *connman_iptables_init(const char *table_name)
table->blob_entries->size,
add_entry, table);
-
return table;
err:
+ g_free(module);
connman_iptables_cleanup(table);