rename ModifyMilter to QuarantineMilter

This commit is contained in:
2021-10-05 15:46:36 +02:00
parent 5a1e173771
commit 3f5face79e
3 changed files with 14 additions and 13 deletions

View File

@@ -25,7 +25,7 @@ __all__ = [
"run",
"storage",
"whitelist",
"ModifyMilter"]
"QuarantineMilter"]
__version__ = "2.0.0"
@@ -49,8 +49,9 @@ from pyquarantine.base import replace_illegal_chars
from pyquarantine.rule import Rule
class ModifyMilter(Milter.Base):
"""ModifyMilter based on Milter.Base to implement milter communication"""
class QuarantineMilter(Milter.Base):
"""QuarantineMilter based on Milter.Base to implement
milter communication"""
_rules = []
_loglevel = logging.INFO
@@ -59,7 +60,7 @@ class ModifyMilter(Milter.Base):
@staticmethod
def set_config(cfg, debug):
ModifyMilter._loglevel = cfg.get_loglevel(debug)
QuarantineMilter._loglevel = cfg.get_loglevel(debug)
try:
local_addrs = []
@@ -69,15 +70,15 @@ class ModifyMilter(Milter.Base):
raise RuntimeError(e)
logger = logging.getLogger(__name__)
logger.setLevel(ModifyMilter._loglevel)
logger.setLevel(QuarantineMilter._loglevel)
for idx, rule_cfg in enumerate(cfg["rules"]):
rule = Rule(rule_cfg, local_addrs, debug)
logger.debug(rule)
ModifyMilter._rules.append(rule)
QuarantineMilter._rules.append(rule)
def __init__(self):
self.logger = logging.getLogger(__name__)
self.logger.setLevel(ModifyMilter._loglevel)
self.logger.setLevel(QuarantineMilter._loglevel)
def addheader(self, field, value, idx=-1):
value = replace_illegal_chars(Header(s=value).encode())
@@ -152,7 +153,7 @@ class ModifyMilter(Milter.Base):
# also check if the mail body is needed by any upcoming action.
self.rules = []
self._headersonly = True
for rule in ModifyMilter._rules:
for rule in QuarantineMilter._rules:
if rule.conditions is None or \
rule.conditions.match_host(self.IP):
actions = []
@@ -231,7 +232,7 @@ class ModifyMilter(Milter.Base):
try:
# remove CR and LF from address fields, otherwise pythons
# email library throws an exception
if field.lower() in ModifyMilter._addr_fields:
if field.lower() in QuarantineMilter._addr_fields:
try:
v = str(make_header(decode_header(value)))
except Exception as e:

View File

@@ -21,7 +21,7 @@ import logging.handlers
import sys
from pyquarantine import mailer
from pyquarantine import ModifyMilter
from pyquarantine import QuarantineMilter
from pyquarantine import __version__ as version
from pyquarantine.config import get_milter_config
@@ -101,7 +101,7 @@ def main():
if not rule["actions"]:
raise RuntimeError(
f"{rule['name']}: no actions configured")
ModifyMilter.set_config(cfg, args.debug)
QuarantineMilter.set_config(cfg, args.debug)
except (RuntimeError, AssertionError) as e:
logger.error(f"config error: {e}")
@@ -126,7 +126,7 @@ def main():
logger.info("milter starting")
# register milter factory class
Milter.factory = ModifyMilter
Milter.factory = QuarantineMilter
Milter.set_exception_policy(Milter.TEMPFAIL)
if args.debug: