improve logging and some fixes

This commit is contained in:
2021-03-09 19:09:21 +01:00
parent 16ca8cbbf0
commit 1349570b87
6 changed files with 63 additions and 73 deletions

View File

@@ -35,6 +35,7 @@ from collections import defaultdict
from email.header import Header
from email.parser import BytesFeedParser
from email.policy import default as default_policy, SMTP
from netaddr import IPNetwork, AddrFormatError
from pymodmilter.base import CustomLogger, BaseConfig, MilterMessage
from pymodmilter.base import replace_illegal_chars
@@ -56,8 +57,7 @@ class ModifyMilterConfig(BaseConfig):
except json.JSONDecodeError as e:
cfg_text = [f"{n+1}: {l}" for n, l in enumerate(cfg.splitlines())]
msg = "\n".join(cfg_text)
e.msg = f"{msg}\n{e.msg}"
raise e
raise RuntimeError(f"{e}\n{msg}")
if "global" in cfg:
assert isinstance(cfg["global"], dict), \
@@ -90,15 +90,21 @@ class ModifyMilterConfig(BaseConfig):
[isinstance(addr, str) for addr in local_addrs]), \
"global: local_addrs: invalid value, " \
"should be list of strings"
self["local_addrs"] = local_addrs
else:
self["local_addrs"] = [
local_addrs = [
"::1/128",
"127.0.0.0/8",
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"]
self["local_addrs"] = []
try:
for addr in local_addrs:
self["local_addrs"].append(IPNetwork(addr))
except AddrFormatError as e:
raise ValueError(f"{self['name']}: local_addrs: {e}")
self.logger.debug(f"socket={self['socket']}, "
f"local_addrs={self['local_addrs']}, "
f"pretend={self['pretend']}, "