xref: /dragonfly/etc/rc.d/sendmail (revision 2ee85085)
1#!/bin/sh
2#
3# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
4# $FreeBSD: src/etc/rc.d/sendmail,v 1.7 2002/10/12 10:31:31 schweikh Exp $
5# $DragonFly: src/etc/rc.d/sendmail,v 1.3 2004/01/27 00:55:43 rob Exp $
6#
7
8# PROVIDE: mail
9# REQUIRE: LOGIN
10# KEYWORD: DragonFly
11#	we make mail start late, so that things like .forward's are not
12#	processed until the system is fully operational
13
14# XXX - Get together with sendmail mantainer to figure out how to
15#	better handle SENDMAIL_ENABLE and 3rd party MTAs.
16#
17. /etc/rc.subr
18
19name="sendmail"
20rcvar=`set_rcvar`
21required_files="/etc/mail/${name}.cf"
22command=${sendmail_program:-/usr/sbin/sendmail}
23pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
24load_rc_config $name
25case ${sendmail_enable} in
26[Nn][Oo][Nn][Ee])
27	sendmail_enable="NO"
28	sendmail_submit_enable="NO"
29	sendmail_outbound_enable="NO"
30	sendmail_msp_queue_enable="NO"
31	;;
32esac
33
34sendmail_precmd()
35{
36	# Die if there's pre-8.10 custom configuration file.  This check is
37	# mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
38	#
39	if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
40		if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
41			warn \
42    "${name} was not started; you have multiple copies of sendmail.cf."
43			return 1
44		fi
45	fi
46
47	# check modifications on /etc/mail/aliases
48	if [ -f "/etc/mail/aliases.db" ]; then
49		if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
50			echo \
51	    "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
52			/usr/bin/newaliases
53		fi
54	else
55		echo \
56	    "${name}: /etc/mail/aliases.db not present, generating"
57			/usr/bin/newaliases
58	fi
59
60	# check couple of common db files, too
61	for f in genericstable virtusertable domaintable mailertable; do
62		if [ -r "/etc/mail/$f" -a \
63		    "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
64			echo \
65    "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
66			/usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
67		fi
68	done
69}
70
71run_rc_command "$1"
72
73required_files=
74if ! checkyesno sendmail_enable; then
75	name="sendmail_submit"
76	rcvar=`set_rcvar`
77	start_cmd="${command} ${sendmail_submit_flags}"
78	run_rc_command "$1"
79fi
80if ! checkyesno sendmail_outbound_enable; then
81	name="sendmail_outbound"
82	rcvar=`set_rcvar`
83	start_cmd="${command} ${sendmail_outbound_flags}"
84	run_rc_command "$1"
85fi
86name="sendmail_clientmqueue"
87rcvar="sendmail_msp_queue_enable"
88start_cmd="${command} ${sendmail_msp_queue_flags}"
89pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
90required_files="/etc/mail/submit.cf"
91run_rc_command "$1"
92