From e1100903a0ffad54678e278134b0149e2adb928e Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 25 May 2008 17:02:11 +0000 Subject: Restart if master.cf was changed, and do nothing if, well, nothing was changed. --- postfix/postfix.sh | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'postfix') diff --git a/postfix/postfix.sh b/postfix/postfix.sh index e183e29..923029e 100755 --- a/postfix/postfix.sh +++ b/postfix/postfix.sh @@ -3,7 +3,7 @@ # /etc/local-COMMON/postfix/postfix.sh # Copyright 2002-2007 Jonas Smedegaard # -# $Id: postfix.sh,v 1.70 2008-05-25 16:44:56 jonas Exp $ +# $Id: postfix.sh,v 1.71 2008-05-25 17:02:11 jonas Exp $ # # Auto-tweak plain installed postfix Debian package # @@ -314,11 +314,12 @@ EOF fi fi -diff -ruN "$confdir" "$tempdir" || if [ $? -gt 1 ]; then exit $?; fi +diff -ruN "$confdir" "$tempdir" || if [ $? -gt 1 ]; then exit $?; else needs_reload="1"; fi +diff "$confdir/master.cf" "$tempdir/master.cf" || if [ $? -gt 1 ]; then exit $?; else needs_restart="1"; fi if [ "$force" = "1" ]; then do_update="y" -else +elif [ "1" = "$needs_reload" ]; then echo -n "Above is the intended changes. OK to update (y/N)? " read do_update fi @@ -336,16 +337,27 @@ case $do_update in postmap "$confdir/$file" done - # FIXME: restart if master.conf has been edited - invoke-rc.d postfix reload + if [ "1" = "$needs_restart" ]; then + invoke-rc.d postfix restart + else + invoke-rc.d postfix force-reload + fi - echo >&2 "Changes applied!" + if [ "1" = "$needs_reload" ]; then + echo >&2 "Changes applied!" + fi ;; *) - exit1 "Aborted!" + if [ "1" = "$needs_reload" ]; then + exit1 "Aborted!" + fi ;; esac +if [ "1" != "$needs_reload" ]; then + echo >&2 "No changes needed!" +fi + # Based on this: http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt # Support for trusted MX backup networks added # PCRE stuff avoided, as PCRE is only optional on newest Debian packages -- cgit v1.2.3