From d495052b524b872c4ee1ce22f33f163b4f6f7ee1 Mon Sep 17 00:00:00 2001 From: Pim van den Berg Date: Sat, 30 Apr 2022 20:20:55 +0200 Subject: [PATCH] postfix: wrap IPv6 CIDRs in square brackets for RELAYNETS The RELAYNETS environment variable is used for configuring both postfix `mynetworks` and rspamd `local_networks`. Postfix requires IPv6 addresses to be wrapped in square brackets (eg. [2001:db8::]/64). --- core/postfix/start.py | 5 +++++ towncrier/newsfragments/2325.bugfix | 1 + 2 files changed, 6 insertions(+) create mode 100644 towncrier/newsfragments/2325.bugfix diff --git a/core/postfix/start.py b/core/postfix/start.py index fe93de86..6060700f 100755 --- a/core/postfix/start.py +++ b/core/postfix/start.py @@ -6,6 +6,7 @@ import shutil import multiprocessing import logging as log import sys +import re from podop import run_server from pwd import getpwnam @@ -50,6 +51,10 @@ os.environ["LMTP_ADDRESS"] = system.get_host_address_from_environment("LMTP", "i os.environ["POSTFIX_LOG_SYSLOG"] = os.environ.get("POSTFIX_LOG_SYSLOG","local") os.environ["POSTFIX_LOG_FILE"] = os.environ.get("POSTFIX_LOG_FILE", "") +# Postfix requires IPv6 addresses to be wrapped in square brackets +if 'RELAYNETS' in os.environ: + os.environ["RELAYNETS"] = re.sub(r'([0-9a-fA-F]+:[0-9a-fA-F:]+)/', '[\\1]/', os.environ["RELAYNETS"]) + for postfix_file in glob.glob("/conf/*.cf"): conf.jinja(postfix_file, os.environ, os.path.join("/etc/postfix", os.path.basename(postfix_file))) diff --git a/towncrier/newsfragments/2325.bugfix b/towncrier/newsfragments/2325.bugfix new file mode 100644 index 00000000..ff42224e --- /dev/null +++ b/towncrier/newsfragments/2325.bugfix @@ -0,0 +1 @@ +postfix: wrap IPv6 CIDRs in square brackets for RELAYNETS