From f5962b0554d0f289a5c9f2f22031880fc5d5fcac Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Thu, 22 Sep 2011 15:39:32 +0300 Subject: tools: Adding capability to load necessary modules into iptables-test --- tools/iptables-test.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tools') 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); -- cgit v1.2.3