sendmail revision 104980
156893Sfenner#!/bin/sh
256893Sfenner#
356893Sfenner# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
456893Sfenner# $FreeBSD: head/etc/rc.d/sendmail 104980 2002-10-12 10:31:31Z schweikh $
556893Sfenner#
656893Sfenner
756893Sfenner# PROVIDE: mail
856893Sfenner# REQUIRE: LOGIN
956893Sfenner# KEYWORD: FreeBSD NetBSD
1056893Sfenner#	we make mail start late, so that things like .forward's are not
1156893Sfenner#	processed until the system is fully operational
1256893Sfenner
1356893Sfenner# XXX - Get together with sendmail mantainer to figure out how to
1456893Sfenner#	better handle SENDMAIL_ENABLE and 3rd party MTAs.
1556893Sfenner#
1656893Sfenner. /etc/rc.subr
1756893Sfenner
1856893Sfennername="sendmail"
1956893Sfennerrcvar=`set_rcvar`
2056893Sfennerrequired_files="/etc/mail/${name}.cf"
2156893Sfenner
2256893Sfennercase ${OSTYPE} in
2356893SfennerFreeBSD)
2456893Sfenner	command=${sendmail_program:-/usr/sbin/sendmail}
2556893Sfenner	pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
2656893Sfenner
2756893Sfenner	load_rc_config $name
2856893Sfenner
2956893Sfenner	case ${sendmail_enable} in
3056893Sfenner	[Nn][Oo][Nn][Ee])
3156893Sfenner		sendmail_enable="NO"
3256893Sfenner		sendmail_submit_enable="NO"
3356893Sfenner		sendmail_outbound_enable="NO"
3456893Sfenner		sendmail_msp_queue_enable="NO"
3556893Sfenner		;;
3656893Sfenner	esac
3756893Sfenner	;;
3856893SfennerNetBSD)
3956893Sfenner	command="/usr/sbin/${name}"
4056893Sfenner	pidfile="/var/run/${name}.pid"
4156893Sfenner	start_precmd="sendmail_precmd"
4256893Sfenner
4356893Sfenner	load_rc_config $name
44127668Sbms	;;
45190207Srpauloesac
4656893Sfenner
4756893Sfennersendmail_precmd()
48127668Sbms{
4956893Sfenner	# Die if there's pre-8.10 custom configuration file.  This check is
5056893Sfenner	# mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
5156893Sfenner	#
5256893Sfenner	if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
5356893Sfenner		if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
5456893Sfenner			warn \
5556893Sfenner    "${name} was not started; you have multiple copies of sendmail.cf."
5656893Sfenner			return 1
5756893Sfenner		fi
5856893Sfenner	fi
5956893Sfenner
6056893Sfenner	# check modifications on /etc/mail/aliases
6156893Sfenner	if [ -f "/etc/mail/aliases.db" ]; then
6256893Sfenner		if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
6356893Sfenner			echo \
6456893Sfenner	    "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
6556893Sfenner			/usr/bin/newaliases
6656893Sfenner		fi
6756893Sfenner	else
6856893Sfenner		echo \
6956893Sfenner	    "${name}: /etc/mail/aliases.db not present, generating"
7056893Sfenner			/usr/bin/newaliases
7156893Sfenner	fi
7256893Sfenner
7356893Sfenner	# check couple of common db files, too
7456893Sfenner	for f in genericstable virtusertable domaintable mailertable; do
75235530Sdelphij		if [ -r "/etc/mail/$f" -a \
7656893Sfenner		    "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
7756893Sfenner			echo \
7856893Sfenner    "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
7956893Sfenner			/usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
8056893Sfenner		fi
81146773Ssam	done
8256893Sfenner}
8356893Sfenner
8456893Sfennerrun_rc_command "$1"
8598524Sfenner
8656893Sfennercase ${OSTYPE} in
8756893SfennerFreeBSD)
8856893Sfenner	required_files=
8956893Sfenner
9056893Sfenner	if ! checkyesno sendmail_enable; then
9156893Sfenner		name="sendmail_submit"
9256893Sfenner		rcvar=`set_rcvar`
93127668Sbms		start_cmd="${command} ${sendmail_submit_flags}"
9456893Sfenner		run_rc_command "$1"
9556893Sfenner	fi
9656893Sfenner
9756893Sfenner	if ! checkyesno sendmail_outbound_enable; then
9856893Sfenner		name="sendmail_outbound"
9956893Sfenner		rcvar=`set_rcvar`
10056893Sfenner		start_cmd="${command} ${sendmail_outbound_flags}"
10156893Sfenner		run_rc_command "$1"
10256893Sfenner	fi
10356893Sfenner
10456893Sfenner	name="sendmail_clientmqueue"
105235530Sdelphij	rcvar="sendmail_msp_queue_enable"
106235530Sdelphij	start_cmd="${command} ${sendmail_msp_queue_flags}"
107235530Sdelphij	pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
10856893Sfenner	required_files="/etc/mail/submit.cf"
10956893Sfenner	run_rc_command "$1"
11056893Sfenner	;;
11156893Sfenneresac
11256893Sfenner