sendmail revision 103264
1247841Sbapt#!/bin/sh
2263020Sbapt#
3257353Sbdrewery# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
4247841Sbapt# $FreeBSD: head/etc/rc.d/sendmail 103264 2002-09-12 17:31:09Z gordon $
5247841Sbapt#
6247841Sbapt
7247841Sbapt# PROVIDE: mail
8247841Sbapt# REQUIRE: LOGIN
9247841Sbapt# KEYWORD: FreeBSD NetBSD
10247841Sbapt#	we make mail start late, so that things like .forward's are not
11247841Sbapt#	processed until the system is fully operational
12247841Sbapt
13247841Sbapt# XXX - Get together with sendmail mantainer to figure out how to
14247841Sbapt#	better handle SENDMAIL_ENABLE and 3rd party MTAs.
15247841Sbapt#
16247841Sbapt. /etc/rc.subr
17247841Sbapt
18247841Sbaptname="sendmail"
19247841Sbaptrcvar=`set_rcvar`
20247841Sbaptrequired_files="/etc/mail/${name}.cf"
21247841Sbapt
22247841Sbaptcase ${OSTYPE} in
23247841SbaptFreeBSD)
24247841Sbapt	command=${sendmail_program:-/usr/sbin/sendmail}
25247841Sbapt	pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
26247841Sbapt
27247841Sbapt	load_rc_config $name
28247841Sbapt
29247841Sbapt	case ${sendmail_enable} in
30247841Sbapt	[Nn][Oo][Nn][Ee])
31247841Sbapt		sendmail_enable="NO"
32261144Sbapt		sendmail_submit_enable="NO"
33247841Sbapt		sendmail_outbound_enable="NO"
34247841Sbapt		sendmail_msp_queue_enable="NO"
35247841Sbapt		;;
36259613Sbdrewery	esac
37247841Sbapt	;;
38255457SbaptNetBSD)
39259613Sbdrewery	command="/usr/sbin/${name}"
40263020Sbapt	pidfile="/var/run/${name}.pid"
41247841Sbapt	start_precmd="sendmail_precmd"
42247841Sbapt
43247841Sbapt	load_rc_config $name
44247841Sbapt	;;
45247841Sbaptesac
46247841Sbapt
47247841Sbaptsendmail_precmd()
48247841Sbapt{
49247841Sbapt	# Die if there's pre-8.10 custom configuration file.  This check is
50247841Sbapt	# mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
51247841Sbapt	#
52247841Sbapt	if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
53247841Sbapt		if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
54247841Sbapt			warn \
55247841Sbapt    "${name} was not started; you have multiple copies of sendmail.cf."
56247841Sbapt			return 1
57259613Sbdrewery		fi
58259613Sbdrewery	fi
59259613Sbdrewery
60259613Sbdrewery	# check modifications on /etc/mail/aliases
61259613Sbdrewery	if [ -f "/etc/mail/aliases.db" ]; then
62247841Sbapt		if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
63247841Sbapt			echo \
64247841Sbapt	    "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
65247841Sbapt			/usr/bin/newaliases
66247841Sbapt		fi
67259613Sbdrewery	else
68247841Sbapt		echo \
69263621Sbdrewery	    "${name}: /etc/mail/aliases.db not present, generating"
70247841Sbapt			/usr/bin/newaliases
71247841Sbapt	fi
72247841Sbapt
73247841Sbapt	# check couple of common db files, too
74247841Sbapt	for f in genericstable virtusertable domaintable mailertable; do
75247841Sbapt		if [ -r "/etc/mail/$f" -a \
76257328Sbdrewery		    "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
77247841Sbapt			echo \
78259613Sbdrewery    "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
79247841Sbapt			/usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
80263621Sbdrewery		fi
81247841Sbapt	done
82247841Sbapt}
83247841Sbapt
84247841Sbaptrun_rc_command "$1"
85247841Sbapt
86247841Sbaptcase ${OSTYPE} in
87259613SbdreweryFreeBSD)
88247841Sbapt	required_files=
89263621Sbdrewery	
90247841Sbapt	if ! checkyesno sendmail_enable; then
91247841Sbapt		name="sendmail_submit"
92247841Sbapt		rcvar=`set_rcvar`
93247841Sbapt		start_cmd="${command} ${sendmail_submit_flags}"
94247841Sbapt		run_rc_command "$1"
95247841Sbapt	fi
96259613Sbdrewery
97247841Sbapt	if ! checkyesno sendmail_outbound_enable; then
98263621Sbdrewery		name="sendmail_outbound"
99247841Sbapt		rcvar=`set_rcvar`
100247841Sbapt		start_cmd="${command} ${sendmail_outbound_flags}"
101247841Sbapt		run_rc_command "$1"
102247841Sbapt	fi
103247841Sbapt
104247841Sbapt	name="sendmail_clientmqueue"
105259613Sbdrewery	rcvar="sendmail_msp_queue_enable"
106247841Sbapt	start_cmd="${command} ${sendmail_msp_queue_flags}"
107263621Sbdrewery	pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
108257353Sbdrewery	required_files="/etc/mail/submit.cf"
109257353Sbdrewery	run_rc_command "$1"
110257353Sbdrewery	;;
111257353Sbdreweryesac
112257353Sbdrewery