rename ModifyMilter to QuarantineMilter
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user