summaryrefslogtreecommitdiff
path: root/debian/exim4-config.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/exim4-config.postinst')
-rw-r--r--debian/exim4-config.postinst26
1 files changed, 26 insertions, 0 deletions
diff --git a/debian/exim4-config.postinst b/debian/exim4-config.postinst
index 6034437..0424ac2 100644
--- a/debian/exim4-config.postinst
+++ b/debian/exim4-config.postinst
@@ -363,6 +363,32 @@ case "$1" in
# If dpkg-reconfigure was used implement the changes by restarting
# the daemon.
if [ "${DEBCONF_RECONFIGURE}" = "1" ] ; then
+ if [ -x /usr/bin/smf_present ] && /usr/bin/smf_present ; then
+ db_stop
+ exim4_fmri='svc:/network/smtp:exim4'
+ # XXX we need a standalone helper for such things:
+ exim4_svcstatus=`svcstatus $exim4_fmri`
+ case $exim4_svcstatus in
+ online)
+ svcadm -v restart $exim4_fmri
+ ;;
+ offline)
+ svcadm -v refresh $exim4_fmri
+ ;;
+ disabled|temporary-disabled)
+ svcadm -v enable $exim4_fmri
+ ;;
+ maintenance)
+ svcadm -v clear $exim4_fmri
+ ;;
+ none)
+ echo "Service $exim4_fmri does not exist" >&2
+ ;;
+ *)
+ echo "Unknown status of $exim4_fmri: \`$exim4_svcstatus'" >&2
+ ;;
+ esac
+ fi
if [ -x /etc/init.d/exim4 ]; then
# use restart instead of reload, as changing listening
# interfaces cannot be done with HUP.