summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/sendmail
blob: 712bb3ec67bcfc40ae87da126d601556a7a40e46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/sh
#
# $FreeBSD$
#

# PROVIDE: mail
# REQUIRE: LOGIN FILESYSTEMS
#	we make mail start late, so that things like .forward's are not
#	processed until the system is fully operational
# KEYWORD: shutdown

# XXX - Get together with sendmail mantainer to figure out how to
#	better handle SENDMAIL_ENABLE and 3rd party MTAs.
#
. /etc/rc.subr

name="sendmail"
rcvar="sendmail_enable"
required_files="/etc/mail/${name}.cf"
start_precmd="sendmail_precmd"

load_rc_config $name
command=${sendmail_program:-/usr/sbin/${name}}
pidfile=${sendmail_pidfile:-/var/run/${name}.pid}
procname=${sendmail_procname:-/usr/sbin/${name}}

case ${sendmail_enable} in
[Nn][Oo][Nn][Ee])
	sendmail_enable="NO"
	sendmail_submit_enable="NO"
	sendmail_outbound_enable="NO"
	sendmail_msp_queue_enable="NO"
	;;
esac

# If sendmail_enable=yes, don't need submit or outbound daemon
if checkyesno sendmail_enable; then
	sendmail_submit_enable="NO"
	sendmail_outbound_enable="NO"
fi

# If sendmail_submit_enable=yes, don't need outbound daemon
if checkyesno sendmail_submit_enable; then
	sendmail_outbound_enable="NO"
fi

sendmail_precmd()
{
	# Die if there's pre-8.10 custom configuration file.  This check is
	# mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
	#
	if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
		if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
			warn \
    "${name} was not started; you have multiple copies of sendmail.cf."
			return 1
		fi
	fi

	# check modifications on /etc/mail/aliases
	if checkyesno sendmail_rebuild_aliases; then
		if [ -f "/etc/mail/aliases.db" ]; then
			if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
				echo \
	    	"${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
				/usr/bin/newaliases
			fi
		else
			echo \
	    	"${name}: /etc/mail/aliases.db not present, generating"
				/usr/bin/newaliases
		fi
	fi
}

run_rc_command "$1"

required_files=

if checkyesno sendmail_submit_enable; then
	name="sendmail_submit"
	rcvar="sendmail_submit_enable"
	run_rc_command "$1"
fi

if checkyesno sendmail_outbound_enable; then
	name="sendmail_outbound"
	rcvar="sendmail_outbound_enable"
	run_rc_command "$1"
fi

name="sendmail_msp_queue"
rcvar="sendmail_msp_queue_enable"
pidfile="${sendmail_msp_queue_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
required_files="/etc/mail/submit.cf"
run_rc_command "$1"
OpenPOWER on IntegriCloud