File: //usr/share/sendmail/update_sendmail
#!/bin/sh -e
#-----------------------------------------------------------------------------
#
# Update Sendmail environment for Debian
#
# Copyright (c) 2001-2001 Richard Nelson. All Rights Reserved.
# Time-stamp: <2001/01/17 10:00:00 cowboy>
#
# Notes (to all):
# *
#
# Notes (to self):
# *
#
#-----------------------------------------------------------------------------
set -e;
# Path to other sendmail helpers
if [ -x ./update_sendmail ]; then
sm_path='.';
elif [ -x $(dirname $0)/update_sendmail ]; then
sm_path=$(dirname $0);
else
sm_path=/usr/share/sendmail;
fi;
# Bring in sendmail.conf for the network definitions
# Here, we *MUST* update the conf file before reading it...
#if [ ! -f /etc/mail/sendmail.conf ]; then
if [ -x $sm_path/update_conf ]; then
$sm_path/update_conf;
fi;
# fi;
if [ -f /etc/mail/sendmail.conf ]; then
. /etc/mail/sendmail.conf;
fi;
if [ "$HANDS_OFF" != 'No' ]; then
exit 0;
fi;
# control amount of output
verbosity=0;
# flag used to indicate a dataset has been moved, may need another update
changed=0;
#-------------------------------------------------------------
# Make sure the configuration is setup
if [ -x $sm_path/update_conf ]; then
$sm_path/update_conf || true;
fi;
#-------------------------------------------------------------
# Perform some [safe] updates to an existing sendmail.mc to make
# sure it is compatible with the current executables.
if [ -x $sm_path/update_mc ]; then
$sm_path/update_mc || changed=1;
rm -f /etc/mail/databases || true;
$sm_path/parse_mc || true;
fi;
#-------------------------------------------------------------
# Make sure the system is setup
if [ -x $sm_path/update_sys ]; then
$sm_path/update_sys || changed=1;
fi;
#-------------------------------------------------------------
# update smrsh/sensible-mda information if possible
if [ -x $sm_path/update_smrsh ]; then
$sm_path/update_smrsh || true;
fi;
#-------------------------------------------------------------
# update LDAP information if possible
if [ -x $sm_path/update_ldap ]; then
$sm_path/update_ldap || true;
fi;
#-------------------------------------------------------------
# update SMTP AUTH (SASL) information if possible
if [ -x $sm_path/update_auth ]; then
$sm_path/update_auth || true;
fi;
#-------------------------------------------------------------
# update TLS(SSL) information if possible
if [ -x $sm_path/update_tls ]; then
$sm_path/update_tls || true;
fi;
#-------------------------------------------------------------
# Check and update (if needed) /etc/hosts.allow
if [ -x $sm_path/update_tcpd ]; then
$sm_path/update_tcpd || true;
fi;
#-------------------------------------------------------------
# Correct prior stupidity of the maintainter
# Remove old bogon entries from /etc/mail/access
if [ -s /etc/mail/access ]; then
cp -p /etc/mail/access /etc/mail/access.new;
sed \
-e '/^#\?Connect:8 REJECT/d' \
-e '/^#\?Connect:41 REJECT/d' \
-e '/^#\?Connect:71 REJECT/d' \
-e '/^#\?Connect:72 REJECT/d' \
-e '/^#\?Connect:73 REJECT/d' \
-e '/^#\?Connect:74 REJECT/d' \
-e '/^#\?Connect:75 REJECT/d' \
-e '/^#\?Connect:76 REJECT/d' \
/etc/mail/access > /etc/mail/access.new;
mv /etc/mail/access.new /etc/mail/access;
fi;
#-------------------------------------------------------------
# Make sure the databases are in the expected locations
if [ -x $sm_path/update_db ]; then
$sm_path/update_db || changed=1;
fi;
#-------------------------------------------------------------
exit $changed