* and this functionality is also handled by
* networkAdd/RemoveFirewallRules()
*/
- networkRemoveFirewallRules(obj);
+ networkRemoveFirewallRules(obj, false);
ignore_value(networkAddFirewallRules(def, cfg->firewallBackend, &fwRemoval));
virNetworkObjSetFwRemoval(obj, fwRemoval);
saveStatus = true;
ignore_value(virNetDevSetOnline(def->bridge, false));
if (firewalRulesAdded)
- networkRemoveFirewallRules(obj);
+ networkRemoveFirewallRules(obj, true);
virNetworkObjUnrefMacMap(obj);
ignore_value(virNetDevSetOnline(def->bridge, false));
- networkRemoveFirewallRules(obj);
+ networkRemoveFirewallRules(obj, true);
ignore_value(virNetDevBridgeDelete(def->bridge));
* old rules (and remember to load new ones after the
* update).
*/
- networkRemoveFirewallRules(obj);
+ networkRemoveFirewallRules(obj, false);
needFirewallRefresh = true;
break;
default:
void
-networkRemoveFirewallRules(virNetworkObj *obj)
+networkRemoveFirewallRules(virNetworkObj *obj,
+ bool unsetZone)
{
virNetworkDef *def = virNetworkObjGetDef(obj);
virFirewall *fw;
* same interface name wants *no* zone set. To avoid this, we must
* "unset" the zone if we set it when the network was started.
*/
- if (virFirewallDIsRegistered() == 0 &&
- (def->forward.type != VIR_NETWORK_FORWARD_OPEN ||
- def->bridgeZone)) {
+ if (unsetZone
+ && virFirewallDIsRegistered() == 0
+ && (def->forward.type != VIR_NETWORK_FORWARD_OPEN
+ || def->bridgeZone)) {
VIR_DEBUG("unsetting zone for '%s' (current zone is '%s')",
def->bridge, def->bridgeZone);
virFirewallBackend firewallBackend,
virFirewall **fwRemoval);
-void networkRemoveFirewallRules(virNetworkObj *obj);
+void networkRemoveFirewallRules(virNetworkObj *obj,
+ bool unsetZone);