From: Samuel Ortiz Date: Sat, 13 Nov 2010 23:13:51 +0000 (+0100) Subject: tethering: Flush POSTROUTING table when needed X-Git-Tag: 0.64~41 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fd055d3137297e8da486a0787f5a94fcd99f58d1;p=platform%2Fupstream%2Fconnman.git tethering: Flush POSTROUTING table when needed --- diff --git a/src/tethering.c b/src/tethering.c index 35b407d..ad159a1 100644 --- a/src/tethering.c +++ b/src/tethering.c @@ -113,7 +113,11 @@ static int enable_nat(const char *interface) if (err < 0) return err; - /* TODO: Flush nat POSTROUTING chain */ + /* POSTROUTING flush */ + err = __connman_iptables_command("-t nat -F POSTROUTING"); + if (err < 0) + return err; + /* Enable masquerading */ err = __connman_iptables_command("-t nat -A POSTROUTING " "-o %s -j MASQUERADE", interface); @@ -125,10 +129,17 @@ static int enable_nat(const char *interface) static void disable_nat(const char *interface) { + int err; + /* Disable IPv4 forwarding */ enable_ip_forward(FALSE); - /* TODO: Flush nat POSTROUTING chain */ + /* POSTROUTING flush */ + err = __connman_iptables_command("-t nat -F POSTROUTING"); + if (err < 0) + return; + + __connman_iptables_commit("nat"); } void __connman_tethering_set_enabled(void)