#!/bin/bash
# Copyright (c) 1997-2012 SuSE GmbH Nuernberg, Germany.
# Author: Florian La Roche
#         Werner Fink
# Please send feedback to http://www.suse.de/feedback/

# Generate a sendmail-m4 to stdout if called with -m4
# (The usual stdout is redirected to stderr)
test "$1" = "-m4" && exec 5>&1 1>&2

e=0

VERSION=8.14.7-0.9
   DATE=2012/05/31
typeset -i SENDMAIL_MTA_PORT=25
typeset -i SENDMAIL_UUCP_MAX_MSG=0

test -s /etc/rc.config && . /etc/rc.config

# Know about FQHOSTNAME
test -s /etc/HOSTNAME && read -t 1 FQHOSTNAME < /etc/HOSTNAME

# Know about FROM_HEADER, NODNS, DIALUP, and NULLCLIENT
test -s /etc/sysconfig/mail     && . /etc/sysconfig/mail

# sendmail special configuration
test -s /etc/sysconfig/sendmail && . /etc/sysconfig/sendmail

# See if USE_AMAVIS is set
if rpm -q amavisd-new &> /dev/null ; then
  test -s /etc/sysconfig/amavis && . /etc/sysconfig/amavis
fi

setmask()
{
    local mask=$(find $1 -printf '%0.4m' 2>/dev/null)
    test -n "$mask" && umask $mask
}

   LIBDIR=/var/lib/sendmail
   MD5DIR=$LIBDIR/md5
OLDMD5DIR=/var/adm/SuSEconfig/md5
mkdir -p $MD5DIR

check_md5_and_move()
{
    local FILE=$1
    local UPDATE=$2
    local RELPATH=$FILE
    local MD5FILE=$MD5DIR/${RELPATH#/}
    local NEWMD5SUM
    local USERMD5SUM
    local OLDMD5SUM
    local TMP
    #
    # make sure that the directory exists
    #
    mkdir -p ${MD5FILE%/*}

    #
    # Copy old checks to new location
    #
    if test -s $OLDMD5DIR/${FILE#/} ; then
	mv -f $OLDMD5DIR/${FILE#/} $MD5FILE
    fi
    
    NEWMD5SUM="$(grep -v "^#" $UPDATE | md5sum)"
    if test ! -s $FILE ; then
	TMP=$(mktemp ${FILE}.XXXXXX) || exit 1
	chmod 0644 $TMP
	mv -f $TMP $FILE
	rm -f $MD5FILE
    fi
    if test "$FORCE_REPLACE" = true ; then
	cp -p $UPDATE $FILE
    fi
    USERMD5SUM="$(grep -v "^#" $FILE | md5sum)"
    test -e $MD5FILE || echo "$USERMD5SUM" > $MD5FILE
    read -t 1 OLDMD5SUM < $MD5FILE
    if test "$USERMD5SUM" != "$OLDMD5SUM" -a \
	    "$USERMD5SUM" != "$NEWMD5SUM" ; then
	echo
	echo "ATTENTION: You have modified $RELPATH.  Leaving it untouched..."
	echo "You can find my version in $UPDATE..."
	echo
    else
	if test "$USERMD5SUM" != "$NEWMD5SUM" -o "$FORCE_REPLACE" = true ; then
	    echo "Installing new $RELPATH"
	    cp -p $UPDATE $FILE
	else
	    test "$VERBOSE" = false || echo "No changes for $RELPATH"
	fi
	rm -f $UPDATE
    fi
    rm -f $MD5FILE
    echo "$NEWMD5SUM" > $MD5FILE
}

EXPAND=""
case "$FQHOSTNAME" in
*.local) 			;;
*.home) 			;;
*.*[a-zA-Z]) EXPAND=$FQHOSTNAME ;;
esac
test -z "$FROM_HEADER" -a -n "$EXPAND"	&& FROM_HEADER=$EXPAND

gen_sendmail_m4()
{
	cat <<-EOF
	######################################################################
	# /etc/sendmail.cf
	#
	# Generated by /usr/lib/sendmail.d/update on $(date +'%Y/%m/%d %H:%M:%S')
	# controlled by /etc/sysconfig/mail and /etc/sysconfig/sendmail
	#
	######################################################################
	divert(-1)
	include(\`/usr/share/sendmail/m4/cf.m4')
	divert(0)dnl
	VERSIONID(\`@(#)Setup for SuSE Linux	$VERSION (SuSE Linux) $DATE')dnl
	OSTYPE(\`suse-linux')dnl
	EOF
	if test $SENDMAIL_MTA_PORT -ne 25 ; then
		echo "DAEMON_OPTIONS(\`Name=MTA,Port=${SENDMAIL_MTA_PORT}')dnl"
	fi
	if test "$USE_ACCESS_DB" = "yes" ; then
		echo "FEATURE(\`access_db',	\`hash -T<TMPF> -o /etc/mail/access.db')dnl"
		echo "FEATURE(\`greet_pause',	\`2000')dnl"
	fi
	if test -d /etc/aliases.d/ ; then
		afiles=""
		for a in /etc/aliases.d/* ; do
			test -s "$a" || continue
			case "$a" in
			*.db|*.dir|*.btree|*.pag) continue ;;
			esac
			afiles="${afiles},${a}"
		done
		if test -n "${afiles}" ; then
			echo "ifdef(\`ALIAS_FILE', define(\`ALIAS_FILE', ALIAS_FILE\`${afiles}'))dnl"
		fi
		unset a afiles
	fi
	if test -n "$SENDMAIL_SMARTHOST" -a "$SENDMAIL_SMARTHOST" != "no" ; then
		case "$SENDMAIL_SMARTHOST" in
		*.*.)		;;
		*.*[a-zA-Z])	SENDMAIL_SMARTHOST="${SENDMAIL_SMARTHOST}."
		esac
		echo "define(\`SMART_HOST',	\`$SENDMAIL_SMARTHOST')dnl"
		echo "undefine(\`confHOST_STATUS_DIRECTORY')dnl"
		if test "$DIALUP" = yes ; then
			echo "define(\`confFALLBACK_MX',	\`[${SENDMAIL_SMARTHOST#*:}]')dnl"
		fi
	fi
	if test -n "$SENDMAIL_RELAY" -a "$SENDMAIL_RELAY" != "no" ; then
		case "$SENDMAIL_RELAY" in
		*.*.)		;;
		*.*[a-zA-Z])	SENDMAIL_RELAY="${SENDMAIL_RELAY}."
		esac
		echo "define(\`LOCAL_RELAY',	\`$SENDMAIL_RELAY')dnl"
		echo "define(\`MAIL_HUB',	\`$SENDMAIL_RELAY')dnl"
	elif test -n "$SENDMAIL_LUSER" -a "$SENDMAIL_LUSER" != "no" ; then
		echo "define(\`LUSER_RELAY',	\`local:$SENDMAIL_LUSER')dnl"
	fi
	if test "$SENDMAIL_EXPENSIVE" = yes ; then
		echo "FEATURE(\`expensive')dnl"
	fi
	if test "$SENDMAIL_NOCANONIFY" = yes ; then
		echo "FEATURE(\`nocanonify')dnl"
		echo "define(\`confDIRECT_SUBMISSION_MODIFIERS', \`C')dnl"
	fi
	if test "$NODNS" = yes ; then
		echo "HACK(\`nodns')dnl"
	fi
	if test "$DIALUP" = yes -a -n "$FQHOSTNAME" ; then
		echo "FEATURE(\`dialup',	\`$FQHOSTNAME')dnl"
	fi
	if test -n "$SENDMAIL_DNSRBL" -a "$SENDMAIL_DNSRBL" != "no" ; then
		for dom in $SENDMAIL_DNSRBL; do
			echo "FEATURE(dnsbl,	\`$dom')dnl"
		done
		unset dom
	fi
	if test -n "$FROM_HEADER" -a "$FROM_HEADER" != "no" ; then
		echo "MASQUERADE_AS(\`$FROM_HEADER')dnl"
		echo "FEATURE(\`masquerade_envelope')dnl"
		if test "$SENDMAIL_ALLMASQUERADE" = "yes" ; then
			echo "FEATURE(\`allmasquerade')dnl"
		fi
		if test -n "$MASQUERADE_DOMAINS" ; then
			if test "$MASQUERADE_ENTIRE_DOMAIN" = "yes"; then
				echo "FEATURE(\`masquerade_entire_domain')dnl"
			fi
			echo "MASQUERADE_DOMAIN(\`$MASQUERADE_DOMAINS')dnl"
			echo "MASQUERADE_DOMAIN_FILE(\`-o /etc/mail/local-host-names %[^\#]')dnl"
			echo "FEATURE(\`limited_masquerade')dnl"
		fi
	fi

	if test "$DOMAINTABLE" = "yes"; then
		echo "FEATURE(\`domaintable', \`hash -o /etc/mail/domaintable.db')dnl"
	fi

	if test "$FROM_HEADER" != "$FQHOSTNAME" ; then
		if test -n "$SENDMAIL_GENERICS_DOMAIN" -a "$SENDMAIL_GENERICS_DOMAIN" != "no" ; then
			SENDMAIL_GENERICS_DOMAIN="$SENDMAIL_GENERICS_DOMAIN $FQHOSTNAME"
		else
			SENDMAIL_GENERICS_DOMAIN="$FQHOSTNAME"
		fi
	fi
	if test -n "$SENDMAIL_GENERICS_DOMAIN" -a "$SENDMAIL_GENERICS_DOMAIN" != "no" ; then
		echo "FEATURE(\`generics_entire_domain')dnl"
		if test -n "$FROM_HEADER" ; then
			echo "GENERICS_DOMAIN(\`$SENDMAIL_GENERICS_DOMAIN $FROM_HEADER')dnl"
		else
			echo "GENERICS_DOMAIN(\`$SENDMAIL_GENERICS_DOMAIN')dnl"
		fi
		echo "GENERICS_DOMAIN_FILE(\`-o /etc/mail/local-host-names %[^\#]')dnl"
	else
		if test -n "$FROM_HEADER" ; then
			echo "GENERICS_DOMAIN(\`$FROM_HEADER')dnl"
			echo "GENERICS_DOMAIN_FILE(\`-o /etc/mail/local-host-names %[^\#]')dnl"
		fi
	fi

	# Foreign package amavis needs libmilter interface
	if test "$USE_AMAVIS" = yes ; then
		echo "define(\`MILTER')dnl"
		cat <<-EOF
		divert(-1)
		INPUT_MAIL_FILTER(\`milter-amavis',\
				  \`S=local:/var/run/amavis/amavis-milter.sock, T=S:10m;R:10m;E:10m')
		divert(0)dnl
		EOF
	fi

	SMTP_AUTH_MECHANISMS=$(echo "$SMTP_AUTH_MECHANISMS" | tr '[:lower:]' '[:upper:]' 2> /dev/null)
	SMTP_AUTH_SERVER=$(echo "$SMTP_AUTH_SERVER" | tr '[:lower:]' '[:upper:]' 2> /dev/null)

	# Enable SMTP-AUTH as client (plain, gssapi, digest-md5, and cram-md5)
	# AUTH_DIR is defined in OSTYPE(`suse-linux') as /etc/mail/auth
	if test -n "$SMTP_AUTH_MECHANISMS" -a "$SMTP_AUTH_MECHANISMS" != "NO" ; then
		echo "FEATURE(\`authinfo',		\`hash -o 'AUTH_DIR\`/auth-info')dnl"
		if test "$SMTP_AUTH_MECHANISMS" != "ALL" ; then
			echo "define(\`confAUTH_MECHANISMS',	\`$SMTP_AUTH_MECHANISMS')dnl"
		else
			echo "define(\`confAUTH_MECHANISMS',dnl"
			echo "\`GSSAPI OTP DIGEST-MD5 CRAM-MD5 PLAIN LOGIN')dnl"
		fi
	fi

	# Enable SMTP-AUTH as server (gssapi, digest-md5, and cram-md5)
	if test -n "$SMTP_AUTH_SERVER" -a "$SMTP_AUTH_SERVER" != "NO" ; then
		case "$SMTP_AUTH_SERVER" in
		*ALL*|*PLAIN*)
			echo "define(\`confAUTH_OPTIONS',	\`Ay' )dnl" ;;
		*)	echo "define(\`confAUTH_OPTIONS',	\`Apy')dnl"
		esac
		if test "$SMTP_AUTH_SERVER" != "ALL" ; then
			echo "define(\`confAUTH_MECHANISMS',	\`$SMTP_AUTH_SERVER')dnl"
			echo "TRUST_AUTH_MECH(\`$SMTP_AUTH_SERVER')dnl"
		else
			echo "define(\`confAUTH_MECHANISMS',dnl"
			echo "\`GSSAPI OTP DIGEST-MD5 CRAM-MD5 PLAIN LOGIN')dnl"
			echo "TRUST_AUTH_MECH(\`GSSAPI OTP DIGEST-MD5 CRAM-MD5 PLAIN LOGIN')"dnl
		fi
	fi

	# Enable STARTTLS Certificates
	# CERT_DIR is defined in OSTYPE(`suse-linux') as /etc/mail/certs
	case "$STARTTLS" in
	server)
		echo "define(\`confCACERT',		 CERT_DIR\`/CA.cert.pem')dnl"
		echo "define(\`confSERVER_CERT',	 CERT_DIR\`/MYServer.cert.pem')dnl"
		echo "define(\`confSERVER_KEY',		 CERT_DIR\`/MYServer.key.pem')dnl"
		;;
	client)
		echo "define(\`confCACERT',		 CERT_DIR\`/CA.cert.pem')dnl"
		echo "define(\`confCLIENT_CERT',	 CERT_DIR\`/MYClient.cert.pem')dnl"
		echo "define(\`confCLIENT_KEY',		 CERT_DIR\`/MYClient.key.pem')dnl"
		;;
	both)
		echo "define(\`confCACERT',		 CERT_DIR\`/CA.cert.pem')dnl"
		echo "define(\`confSERVER_CERT',	 CERT_DIR\`/MYServer.cert.pem')dnl"
		echo "define(\`confSERVER_KEY',		 CERT_DIR\`/MYServer.key.pem')dnl"
		echo "define(\`confCLIENT_CERT',	 CERT_DIR\`/MYClient.cert.pem')dnl"
		echo "define(\`confCLIENT_KEY',		 CERT_DIR\`/MYClient.key.pem')dnl"
		;;
	esac
	if test -n "$STARTTLS" -a "$STARTTLS" != "no" ; then
		echo "define(\`confAUTH_MECHANISMS',	\`EXTERNAL 'defn(\`confAUTH_MECHANISMS'))dnl"
		echo "TRUST_AUTH_MECH(\`EXTERNAL')dnl"
		echo "define(\`confDONT_BLAME_SENDMAIL', defn(\`confDONT_BLAME_SENDMAIL')dnl"
		echo "\`,GroupWritableSASLDBFile')dnl"
	fi

	if test $SENDMAIL_UUCP_MAX_MSG -gt 0 ; then
		echo "define(\`UUCP_MAILER_MAX',	\`$SENDMAIL_UUCP_MAX_MSG')dnl"
	fi

	cat <<-EOF
	DOMAIN(\`generic')dnl
	MAILER(\`local')dnl
	MAILER(\`smtp')dnl
	MAILER(\`procmail')dnl
	MAILER(\`uucp')dnl
	MAILER(\`bsmtp')dnl
	MAILER(\`fido')dnl
	EOF
	if test -n "$SENDMAIL_LOCALHOST" -a "$SENDMAIL_LOCALHOST" != "no" ; then
		echo "LOCAL_CONFIG"
		echo "Cw${SENDMAIL_LOCALHOST}${EXPAND+" $EXPAND"}"
	fi
}

gen_submit_m4()
{
	cat <<-EOF
	######################################################################
	# /etc/mail/submit.cf
	#
	# Generated by /usr/lib/sendmail.d/update on $(date +'%Y/%m/%d %H:%M:%S')
	# controlled by /etc/sysconfig/mail and /etc/sysconfig/sendmail
	#
	######################################################################
	divert(-1)
	include(\`/usr/share/sendmail/m4/cf.m4')
	define(\`SMLIBDIR',			\`/usr/lib/sendmail.d')dnl
	define(\`MAIL_SETTINGS_DIR',		\`/etc/mail/')dnl
	define(\`confDEAD_LETTER_DROP',		\`/var/log/dead.letter')dnl
	define(\`HELP_FILE',			 SMLIBDIR\`/helpfile')dnl
	define(\`confHOSTS_FILE',		\`/etc/hosts')dnl
	define(\`confCT_FILE',			\`-o /etc/mail/trusted-users %[^\#]')dnl
	define(\`confCR_FILE',			\`-o /etc/mail/relay-domains %[^\#]')dnl
	define(\`confSERVICE_SWITCH_FILE',	\`/etc/mail/service.switch')dnl
	define(\`confEBINDIR',			 SMLIBDIR\`/bin')dnl
	divert(0)dnl
	VERSIONID(\`@(#)Setup for SuSE Linux	$VERSION (SuSE Linux) $DATE')dnl
	EOF
	#
	# Enable trusted users file and OS trusted users
	#
	echo "FEATURE(\`use_ct_file')dnl"
	echo $(grep confTRUSTED_USERS /usr/share/sendmail/ostype/suse-linux.m4 2> /dev/null)
	if test "$SENDMAIL_EXPENSIVE" = yes ; then
		echo "FEATURE(\`accept_unresolvable_domains')dnl"
		echo "FEATURE(\`accept_unqualified_senders')dnl"
	fi
	if test "$DIALUP" = yes ; then
		echo "define(\`confTO_QUEUEWARN',		\`1d')dnl"
		echo "define(\`confTO_QUEUEWARN_URGENT',	\`4h')dnl"
		echo "define(\`confTO_QUEUERETURN',		\`7d')dnl"
		echo "define(\`confTRY_NULL_MX_LIST',		 true)dnl"
	fi
	if test "$SENDMAIL_NOCANONIFY" = yes ; then
		echo "FEATURE(\`nocanonify')dnl"
		echo "define(\`confDIRECT_SUBMISSION_MODIFIERS', \`C')dnl"
	else
		echo "FEATURE(\`nocanonify',	\`canonify_hosts')dnl"
		echo "define(\`confDIRECT_SUBMISSION_MODIFIERS', \`C')dnl"
	fi
	if test "$NODNS" = yes ; then
		echo "HACK(\`nodns')dnl"
	fi
	if test "$FROM_HEADER" != "$FQHOSTNAME" ; then
		if test -n "$SENDMAIL_GENERICS_DOMAIN" -a "$SENDMAIL_GENERICS_DOMAIN" != "no" ; then
			SENDMAIL_GENERICS_DOMAIN="$SENDMAIL_GENERICS_DOMAIN $FQHOSTNAME"
		else
			SENDMAIL_GENERICS_DOMAIN="$FQHOSTNAME"
		fi
	fi
	if test -n "$SENDMAIL_GENERICS_DOMAIN" -a "$SENDMAIL_GENERICS_DOMAIN" != "no" ; then
		echo "FEATURE(\`generics_entire_domain')dnl"
		if test -n "$FROM_HEADER" ; then
			echo "GENERICS_DOMAIN(\`$SENDMAIL_GENERICS_DOMAIN $FROM_HEADER')dnl"
		else
			echo "GENERICS_DOMAIN(\`$SENDMAIL_GENERICS_DOMAIN')dnl"
		fi
		echo "GENERICS_DOMAIN_FILE(\`-o /etc/mail/local-host-names %[^\#]')dnl"
	else
		if test -n "$FROM_HEADER" ; then
			echo "GENERICS_DOMAIN(\`$FROM_HEADER')dnl"
			echo "GENERICS_DOMAIN_FILE(\`-o /etc/mail/local-host-names %[^\#]')dnl"
		fi
	fi
	if test $SENDMAIL_MTA_PORT -ne 25 ; then
		echo "define(\`confMTAPort',	\`${SENDMAIL_MTA_PORT}')dnl"
	fi
	cat <<-EOF
	divert(-1)
	include(\`/usr/share/sendmail/cf/submit.mc')
	divert(0)dnl
	EOF
}

# Generate a sendmail-m4 to stdout if called with -m4
# (The usual stdout is redirected to stderr)
# Part 2
if test "$1" = "-m4" ; then
    if test "$2" != "submit" ; then
	gen_sendmail_m4 >&5
    else
	gen_submit_m4   >&5
    fi
    exit $?
fi

if test "$MAIL_CREATE_CONFIG" != no ; then
	umask 0022
	sendupdate=$(mktemp /etc/sendmail.cf.XXXXXX) || exit 1
	submupdate=$(mktemp /etc/mail/submit.cf.XXXXXX)   || exit 1
	chmod 0644 $sendupdate
	chmod 0644 $submupdate
	if test -n "$NULLCLIENT" -a "$NULLCLIENT" != "no" ; then
		(m4 - > $sendupdate) <<-EOF
		divert(-1)
		include(\`/usr/share/sendmail/m4/cf.m4')
		divert(0)dnl
		VERSIONID(\`@(#)Setup for SuSE Linux	$VERSION (SuSE Linux) $DATE')
		OSTYPE(\`suse-linux')dnl
		FEATURE(\`nocanonify')dnl
		FEATURE(\`nullclient', \`$NULLCLIENT')dnl
		LOCAL_CONFIG
		EOF
	else
		gen_sendmail_m4 | m4 - > $sendupdate
		test $? -eq 0 || e=1
	fi
	gen_submit_m4 | m4 - > $submupdate
	test $? -eq 0 || e=1

	mv -f $sendupdate /etc/sendmail.cf.update
	sendupdate=/etc/sendmail.cf.update
	check_md5_and_move /etc/sendmail.cf    $sendupdate

	mv -f $submupdate /etc/submit.cf.update
	submupdate=/etc/submit.cf.update
	check_md5_and_move /etc/mail/submit.cf $submupdate
fi

nofold=""
test "$SENDMAIL_DB_FOLD" = "no" && nofold=-f

test -e /etc/aliases && \
	if test /etc/aliases -nt /etc/aliases.db \
                -o ! -e /etc/aliases.db ; then
		echo "Rebuilding /etc/aliases.db."
		setmask /etc/aliases
		sendmail -bi
		if test $? -eq 0 ; then
		   test -e /etc/aliases.db && touch /etc/aliases.db
		   chmod --reference=/etc/aliases /etc/aliases.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/mailertable && \
	if test /etc/mail/mailertable -nt /etc/mail/mailertable.db \
                -o ! -e /etc/mail/mailertable.db ; then
		echo "Rebuilding /etc/mail/mailertable.db."
		setmask /etc/mail/mailertable
		makemap hash ${nofold} /etc/mail/mailertable.db < /etc/mail/mailertable
		if test $? -eq 0 ; then
		   test -e /etc/mail/mailertable.db && touch /etc/mail/mailertable.db
		   chmod --reference=/etc/mail/mailertable /etc/mail/mailertable.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/genericstable && \
	if test /etc/mail/genericstable -nt /etc/mail/genericstable.db \
                -o ! -e /etc/mail/genericstable.db ; then
		echo "Rebuilding /etc/mail/genericstable.db."
		setmask /etc/mail/genericstable
		makemap hash ${nofold} /etc/mail/genericstable.db < /etc/mail/genericstable
		if test $? -eq 0 ; then
		   test -e /etc/mail/genericstable.db && touch /etc/mail/genericstable.db
		   chmod --reference=/etc/mail/genericstable /etc/mail/genericstable.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/virtusertable && \
	if test /etc/mail/virtusertable -nt /etc/mail/virtusertable.db \
                -o ! -e /etc/mail/virtusertable.db ; then
		echo "Rebuilding /etc/mail/virtusertable.db."
		setmask /etc/mail/virtusertable
		makemap hash ${nofold} /etc/mail/virtusertable.db < /etc/mail/virtusertable
		if test $? -eq 0 ; then
		   test -e /etc/mail/virtusertable.db && touch /etc/mail/virtusertable.db
		   chmod --reference=/etc/mail/virtusertable /etc/mail/virtusertable.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/access && \
	if test /etc/mail/access -nt /etc/mail/access.db \
                -o ! -e /etc/mail/access.db ; then
		echo "Rebuilding /etc/mail/access.db."
		setmask /etc/mail/access
		makemap hash ${nofold} /etc/mail/access.db < /etc/mail/access
		if test $? -eq 0 ; then
		   test -e /etc/mail/access.db && touch /etc/mail/access.db
		   chmod --reference=/etc/mail/access /etc/mail/access.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/userdb && \
	if test /etc/mail/userdb -nt /etc/mail/userdb.db \
                -o ! -e /etc/mail/userdb.db ; then
		echo "Rebuilding /etc/mail/userdb.db."
		setmask /etc/mail/userdb
		makemap btree ${nofold} /etc/mail/userdb.db < /etc/mail/userdb
		if test $? -eq 0 ; then
		   test -e /etc/mail/userdb.db && touch /etc/mail/userdb.db
		   chmod --reference=/etc/mail/userdb /etc/mail/userdb.db
		else
		   e=1
		fi
	fi
test -e /etc/mail/auth/auth-info && \
	if test /etc/mail/auth/auth-info -nt /etc/mail/auth/auth-info.db \
                -o ! -e /etc/mail/auth/auth-info.db ; then
		echo "Rebuilding /etc/mail/auth/auth-info.db."
		setmask /etc/mail/auth/auth-info
		makemap hash ${nofold} /etc/mail/auth/auth-info.db < /etc/mail/auth/auth-info
		if test $? -eq 0 ; then
		   touch /etc/mail/auth/auth-info
		   chmod 0750 /etc/mail/auth
		   chmod 0600 /etc/mail/auth/auth-info*
		else
		   e=1
		fi
	fi
test -e /etc/mail/domaintable && \
	if test /etc/mail/domaintable -nt /etc/mail/domaintable.db \
		-o ! -e /etc/mail/domaintable.db ; then
		echo "Rebuilding /etc/mail/domaintable.db."
		setmask /etc/mail/domaintable
		makemap hash ${nofold} /etc/mail/domaintable.db < /etc/mail/domaintable
		if test $? -eq 0 ; then
		   test -e /etc/mail/domaintable.db && touch /etc/mail/domaintable.db
		   chmod --reference=/etc/mail/domaintable /etc/mail/domaintable.db
		else
		   e=1
		fi
	fi

exit $e
