static int enable_nat(struct connman_nat *nat)
{
+ char *cmd;
int err;
g_free(nat->interface);
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;
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;