]> xenbits.xensource.com Git - libvirt.git/commitdiff
nwfilter: also purge ip(6)tables rules before detecting IP address
authorStefan Berger <stefanb@us.ibm.com>
Wed, 17 Nov 2010 02:18:21 +0000 (21:18 -0500)
committerStefan Berger <stefanb@us.ibm.com>
Wed, 17 Nov 2010 02:18:21 +0000 (21:18 -0500)
Rather than only cleaning any remaining ebtables rules, also clean those applied to iptables and ip6tables when detecting the IP address of an interface. Previous applied iptables rules may hinder DHCP packets.

src/nwfilter/nwfilter_ebiptables_driver.c

index 7b2a50509b3dc82ce354fc77d31ded4031b04a37..9b7a7c8b07f65076a1ee6708432302a8cddb89f6 100644 (file)
@@ -117,6 +117,7 @@ static int ebtablesRemoveBasicRules(const char *ifname);
 static int ebiptablesDriverInit(void);
 static void ebiptablesDriverShutdown(void);
 static int ebtablesCleanAll(const char *ifname);
+static int ebiptablesAllTeardown(const char *ifname);
 
 static virMutex execCLIMutex;
 
@@ -2942,7 +2943,7 @@ ebtablesApplyBasicRules(const char *ifname,
 
     virFormatMacAddr(macaddr, macaddr_str);
 
-    ebtablesCleanAll(ifname);
+    ebiptablesAllTeardown(ifname);
 
     ebtablesCreateTmpRootChain(&buf, 1, ifname, 1);
 
@@ -3041,7 +3042,7 @@ ebtablesApplyDHCPOnlyRules(const char *ifname,
 
     virFormatMacAddr(macaddr, macaddr_str);
 
-    ebtablesCleanAll(ifname);
+    ebiptablesAllTeardown(ifname);
 
     ebtablesCreateTmpRootChain(&buf, 1, ifname, 1);
     ebtablesCreateTmpRootChain(&buf, 0, ifname, 1);
@@ -3143,7 +3144,7 @@ ebtablesApplyDropAllRules(const char *ifname)
         return 1;
     }
 
-    ebtablesCleanAll(ifname);
+    ebiptablesAllTeardown(ifname);
 
     ebtablesCreateTmpRootChain(&buf, 1, ifname, 1);
     ebtablesCreateTmpRootChain(&buf, 0, ifname, 1);