summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2013-02-12 10:19:49 +0100
committerPatrik Flykt <patrik.flykt@linux.intel.com>2013-02-12 12:34:41 +0200
commit4ef79dcb96b08830b03ffcc52120ea843a9f3685 (patch)
tree4a0828b5eca1487d41275f59e612f56349d65852 /src
parentaf9be951d5da9ff42b5b5af9251eede003614678 (diff)
downloadconnman-4ef79dcb96b08830b03ffcc52120ea843a9f3685.tar.gz
connman-4ef79dcb96b08830b03ffcc52120ea843a9f3685.tar.bz2
connman-4ef79dcb96b08830b03ffcc52120ea843a9f3685.zip
nat: Use new iptables API
Diffstat (limited to 'src')
-rw-r--r--src/nat.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/nat.c b/src/nat.c
index 236f5454..5447eb71 100644
--- a/src/nat.c
+++ b/src/nat.c
@@ -59,6 +59,7 @@ static int enable_ip_forward(connman_bool_t enable)
static int enable_nat(struct connman_nat *nat)
{
+ char *cmd;
int err;
g_free(nat->interface);
@@ -68,11 +69,12 @@ static int enable_nat(struct connman_nat *nat)
return 0;
/* Enable masquerading */
- err = __connman_iptables_command("-t nat -A POSTROUTING "
- "-s %s/%d -o %s -j MASQUERADE",
+ cmd = g_strdup_printf("-s %s/%d -o %s -j MASQUERADE",
nat->address,
nat->prefixlen,
nat->interface);
+ err = __connman_iptables_append("nat", "POSTROUTING", cmd);
+ g_free(cmd);
if (err < 0)
return err;
@@ -81,17 +83,19 @@ static int enable_nat(struct connman_nat *nat)
static void disable_nat(struct connman_nat *nat)
{
+ char *cmd;
int err;
if (nat->interface == NULL)
return;
/* Disable masquerading */
- err = __connman_iptables_command("-t nat -D POSTROUTING "
- "-s %s/%d -o %s -j MASQUERADE",
+ cmd = g_strdup_printf("-s %s/%d -o %s -j MASQUERADE",
nat->address,
nat->prefixlen,
nat->interface);
+ err = __connman_iptables_delete("nat", "POSTROUTING", cmd);
+ g_free(cmd);
if (err < 0)
return;