From f8fdec2da8244ceb9d9fafcfa227c939b9f1976a Mon Sep 17 00:00:00 2001 From: Eric Garver Date: Fri, 26 Jul 2019 13:32:44 -0400 Subject: [PATCH 70/73] fix: direct: removeRules() was mistakenly removing all rules Only remove the rules that match the specified criteria (ipv, table, chain). Fixes: #385 Fixes: rhbz 1723610 (cherry picked from commit 174005b15059db054b2f8dcf3b35c23fcbaf44ec) (cherry picked from commit 5b796871894bc2f4f973ef11dc9233b4d391dd63) --- src/firewall/server/config.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/firewall/server/config.py b/src/firewall/server/config.py index 011052a9cabf..b2cebea9b4be 100644 --- a/src/firewall/server/config.py +++ b/src/firewall/server/config.py @@ -1367,7 +1367,9 @@ class FirewallDConfig(slip.dbus.service.Object): (ipv, table, chain, )) self.accessCheck(sender) settings = list(self.getSettings()) - settings[1] = [] + for rule in settings[1]: + if (ipv, table, chain) == (rule[0], rule[1], rule[2]): + settings[1].remove(rule) self.update(tuple(settings)) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, -- 2.20.1