]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix removal of iptable forwarding rules
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 22 May 2008 15:49:50 +0000 (15:49 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 22 May 2008 15:49:50 +0000 (15:49 +0000)
ChangeLog
src/qemu_driver.c

index f693632f5571ee1a2aa536cccafd19e3b5bb21a5..83d0de30d674466ef8021cee633783a680bf97bc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 22 11:49:29 EST 2008 Daniel P. Berrange <berrange@redhat.com>
+
+       * src/qemu_driver.c: Fix removal of iptables forwarding rules
+
 Thu May 22 11:38:29 EST 2008 Daniel P. Berrange <berrange@redhat.com>
 
        * configure.in: Remove some duplicated error messages
index 8e26a4fa837d0f8f335af9f655b888d4a77a38f0..e5124479f411627869f6ec4e16fbc737e919bea2 100644 (file)
@@ -1213,12 +1213,20 @@ qemudRemoveIptablesRules(struct qemud_driver *driver,
                          struct qemud_network *network) {
     if (network->def->forward) {
         iptablesRemoveForwardMasquerade(driver->iptables,
-                                     network->def->network,
-                                     network->def->forwardDev);
-        iptablesRemoveForwardAllowIn(driver->iptables,
-                                   network->def->network,
-                                   network->bridge,
-                                   network->def->forwardDev);
+                                        network->def->network,
+                                        network->def->forwardDev);
+
+        if (network->def->forwardMode == QEMUD_NET_FORWARD_NAT)
+            iptablesRemoveForwardAllowRelatedIn(driver->iptables,
+                                                network->def->network,
+                                                network->bridge,
+                                                network->def->forwardDev);
+        else if (network->def->forwardMode == QEMUD_NET_FORWARD_ROUTE)
+            iptablesRemoveForwardAllowIn(driver->iptables,
+                                         network->def->network,
+                                         network->bridge,
+                                         network->def->forwardDev);
+
         iptablesRemoveForwardAllowOut(driver->iptables,
                                       network->def->network,
                                       network->bridge,