浏览代码

Fix SNAT never being added because of exception

Some firewall rule object (iptc) do not have a parameter
attribute, which results in an exception being triggered,
and the mailcow SNAT rule to never be created.

Firewall rules that trigger such exception are:
- -A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN

This commit just verify attribute presence, and skip the rule
properly instead of triggering an exception.
Bruno Léon 2 年之前
父节点
当前提交
f77c65411d
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      data/Dockerfiles/netfilter/server.py

+ 2 - 0
data/Dockerfiles/netfilter/server.py

@@ -366,6 +366,8 @@ def snat4(snat_target):
           chain.insert_rule(new_rule)
           chain.insert_rule(new_rule)
         else:
         else:
           for position, rule in enumerate(chain.rules):
           for position, rule in enumerate(chain.rules):
+            if not hasattr(rule.target, 'parameter'):
+                continue
             match = all((
             match = all((
               new_rule.get_src() == rule.get_src(),
               new_rule.get_src() == rule.get_src(),
               new_rule.get_dst() == rule.get_dst(),
               new_rule.get_dst() == rule.get_dst(),