Files
sendmail/sendmail-client.systemd

69 lines
1.3 KiB
Bash

#!/bin/bash
#
# /etc/mail/system/sm-client.pre
#
# Author: Werner Fink
# Please send feedback to http://www.suse.de/feedback/
#
# Description:
#
# Helper script to set up the environment for sendmail
# Mail Transport Client if started by systemd
#
typeset -i timeout=1000
typeset port=smtp
for cfg in /etc/sendmail.cf /etc/mail/sendmail.cf ; do
test -s $cfg && break
done
for sed in /bin/sed /usr/bin/sed ; do
test -x $sed && break
done
for usleep in /bin/usleep /usr/bin/usleep ; do
test -x $usleep && break
done
#
# Make sure that configuration is uptodate
#
test -x /usr/bin/make && /usr/bin/make -C /etc/mail > /dev/null 2>&1
#
# Check for DaemonPortOptions
#
PortOpts=$($sed -rn '/^O[[:blank:]]+DaemonPortOptions=.*Name=MTA.*$/I {
s/[[:blank:]]+//g
s/^O[^=]+=(.*)/\1/p
}' $cfg)
unset sed cfg
#
# Seek for port beside 25 aka smtp
#
for opt in ${PortOpts//,/ } ; do
case "${opt%=*}" in
[Pp]ort) port=${opt#*=}
break ;;
esac
done
unset opt
#
# Now wait that sendmail MTA is becoming ready
# Ping the bash special virtual file /dev/tcp/localhost/<port>
#
while
exec 3>&2 2>&-
< /dev/tcp/localhost/$port && break
exec 2>&3 3>&-
((timeout-- <= 0)) && break
$usleep 10000
do :
done
test -e /dev/fd/3 && exec 2>&3 3>&-
unset port usleep timeout
#
# end of /etc/mail/system/sm-client.pre