fix: `postfix-main.cf` may depend upon `postfix-master.cf`
Custom parameters must be referenced to be retained when `postconf -n` is run. If those parameters are referenced by `postfix-master.cf` this needs to update `master.cf` before updating `main.cf`.
This commit is contained in:
parent
34654c7e20
commit
e3f02a7040
|
@ -109,21 +109,6 @@ function _setup_postfix_late() {
|
|||
function __postfix__setup_override_configuration() {
|
||||
__postfix__log 'debug' 'Overriding / adjusting configuration with user-supplied values'
|
||||
|
||||
local OVERRIDE_CONFIG_POSTFIX_MAIN='/tmp/docker-mailserver/postfix-main.cf'
|
||||
if [[ -f ${OVERRIDE_CONFIG_POSTFIX_MAIN} ]]; then
|
||||
cat "${OVERRIDE_CONFIG_POSTFIX_MAIN}" >>/etc/postfix/main.cf
|
||||
_adjust_mtime_for_postfix_maincf
|
||||
|
||||
# do not directly output to 'main.cf' as this causes a read-write-conflict
|
||||
postconf -n >/tmp/postfix-main-new.cf 2>/dev/null
|
||||
|
||||
mv /tmp/postfix-main-new.cf /etc/postfix/main.cf
|
||||
_adjust_mtime_for_postfix_maincf
|
||||
__postfix__log 'trace' "Adjusted '/etc/postfix/main.cf' according to '${OVERRIDE_CONFIG_POSTFIX_MAIN}'"
|
||||
else
|
||||
__postfix__log 'trace' "No extra Postfix settings loaded because optional '${OVERRIDE_CONFIG_POSTFIX_MAIN}' was not provided"
|
||||
fi
|
||||
|
||||
local OVERRIDE_CONFIG_POSTFIX_MASTER='/tmp/docker-mailserver/postfix-master.cf'
|
||||
if [[ -f ${OVERRIDE_CONFIG_POSTFIX_MASTER} ]]; then
|
||||
while read -r LINE; do
|
||||
|
@ -131,7 +116,23 @@ function __postfix__setup_override_configuration() {
|
|||
done < <(_get_valid_lines_from_file "${OVERRIDE_CONFIG_POSTFIX_MASTER}")
|
||||
__postfix__log 'trace' "Adjusted '/etc/postfix/master.cf' according to '${OVERRIDE_CONFIG_POSTFIX_MASTER}'"
|
||||
else
|
||||
__postfix__log 'trace' "No extra Postfix settings loaded because optional '${OVERRIDE_CONFIG_POSTFIX_MASTER}' was not provided"
|
||||
__postfix__log 'trace' "No extra Postfix master settings loaded because optional '${OVERRIDE_CONFIG_POSTFIX_MASTER}' was not provided"
|
||||
fi
|
||||
|
||||
# NOTE: Must come after postfix-master.cf as custom parameter support only works provided either config references it.
|
||||
local OVERRIDE_CONFIG_POSTFIX_MAIN='/tmp/docker-mailserver/postfix-main.cf'
|
||||
if [[ -f ${OVERRIDE_CONFIG_POSTFIX_MAIN} ]]; then
|
||||
cat "${OVERRIDE_CONFIG_POSTFIX_MAIN}" >>/etc/postfix/main.cf
|
||||
_adjust_mtime_for_postfix_maincf
|
||||
|
||||
# Do not directly output to 'main.cf' as this causes a read-write-conflict
|
||||
postconf -n >/tmp/postfix-main-new.cf 2>/dev/null
|
||||
|
||||
mv /tmp/postfix-main-new.cf /etc/postfix/main.cf
|
||||
_adjust_mtime_for_postfix_maincf
|
||||
__postfix__log 'trace' "Adjusted '/etc/postfix/main.cf' according to '${OVERRIDE_CONFIG_POSTFIX_MAIN}'"
|
||||
else
|
||||
__postfix__log 'trace' "No extra Postfix main settings loaded because optional '${OVERRIDE_CONFIG_POSTFIX_MAIN}' was not provided"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue