summaryrefslogtreecommitdiff
blob: 3826b48da2ba4c76a63e30dffaef07bc0a8b1f8f (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# NB: Config is in /etc/conf.d/mimedefang

depend() {
	need net
	before mta
	after antivirus
}


prog='mimedefang'

# Main PID file
PID="$SPOOLDIR/$prog.pid"

# Multiplexor PID file
MXPID="$SPOOLDIR/$prog-multiplexor.pid"

PROGDIR=/usr/bin

# Locale should be set to "C" for generating valid date headers
LC_ALL=C
export LC_ALL


# Make sure required vars are set
SOCKET=${SOCKET:=$SPOOLDIR/$prog.sock}
MX_SOCKET=${MX_SOCKET:=$SPOOLDIR/$prog-multiplexor.sock}

start() {
	# Is there /etc/mail/mimedefang-filter ?
	if [ ! -f /etc/mail/mimedefang-filter ]; then
		eerror "Cannot find /etc/mail/mimedefang-filter"
		return 1
	fi
    
	if test -r $PID ; then
		if kill -0 `cat $PID` > /dev/null 2>&1 ; then
			eerror "mimedefang (`cat $PID`) seems to be running."
			return 1
		fi
	fi
	
	if test -r $MXPID ; then
		if kill -0 `cat $MXPID` > /dev/null 2>&1 ; then
			eerror "mimedefang-multiplexor (`cat $MXPID`) seems to be running."
			return 1
		fi
	fi

	rm -f $MX_SOCKET > /dev/null 2>&1
	if [ "$MX_EMBED_PERL" = "yes" ] ; then
		EMBEDFLAG=-E
	else
		EMBEDFLAG=""
	fi
	
	ebegin "Starting mimedefang-multiplexor"
	start-stop-daemon --start --quiet \
		--exec $PROGDIR/$prog-multiplexor -- -p $MXPID \
			$EMBEDFLAG \
			`[ -n "$FILTER" ] && echo "-f $FILTER"` \
			`[ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY"` \
			`[ -n "$SUBFILTER" ] && echo "-F $SUBFILTER"` \
			`[ -n "$MX_MINIMUM" ] && echo "-m $MX_MINIMUM"` \
			`[ -n "$MX_MAXIMUM" ] && echo "-x $MX_MAXIMUM"` \
			`[ -n "$MX_MAP_SOCKET" ] && echo "-N $MX_MAP_SOCKET"` \
			`[ -n "$MX_LOG_SLAVE_STATUS_INTERVAL" ] && echo "-L $MX_LOG_SLAVE_STATUS_INTERVAL"` \
			`[ -n "$MX_USER" ] && echo "-U $MX_USER"` \
			`[ -n "$MX_IDLE" ] && echo "-i $MX_IDLE"` \
			`[ -n "$MX_BUSY" ] && echo "-b $MX_BUSY"` \
			`[ -n "$MX_REQUESTS" ] && echo "-r $MX_REQUESTS"` \
			`[ -n "$MX_SLAVE_DELAY" ] && echo "-w $MX_SLAVE_DELAY"` \
			`[ -n "$MX_MIN_SLAVE_DELAY" ] && echo "-W $MX_MIN_SLAVE_DELAY"` \
			`[ -n "$MX_MAX_RSS" ] && echo "-R $MX_MAX_RSS"` \
			`[ -n "$MX_MAX_AS" ] && echo "-M $MX_MAX_AS"` \
			`[ "$MX_LOG" = "yes" ] && echo "-l"` \
			`[ "$MX_STATS" = "yes" ] && echo "-t /var/log/mimedefang/stats"` \
			`[ "$MX_STATS" = "yes" -a "$MX_FLUSH_STATS" = "yes" ] && echo "-u"` \
			`[ "$MX_STATS_SYSLOG" = "yes" ] && echo "-T"` \
			`[ "$MX_STATUS_UPDATES" = "yes" ] && echo "-Z"` \
			`[ -n "$MX_QUEUE_SIZE" ] && echo "-q $MX_QUEUE_SIZE"` \
			`[ -n "$MX_QUEUE_TIMEOUT" ] && echo "-Q $MX_QUEUE_TIMEOUT"` \
			`[ -n "$MX_NOTIFIER" ] && echo "-O $MX_NOTIFIER"` \
			-s $MX_SOCKET
	eend $? "Failed to start mimedefang-multiplexor"
		

	rm -f $SOCKET > /dev/null 2>&1

	ebegin "Starting mimedefang"
	start-stop-daemon --start --quiet \
		--exec $PROGDIR/$prog -- -P $PID \
			-m $MX_SOCKET \
			`[ -n "$MX_USER" ] && echo "-U $MX_USER"` \
			`[ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY"` \
			`[ "$MX_RELAY_CHECK" = "yes" ] && echo "-r"` \
			`[ "$MX_SENDER_CHECK" = "yes" ] && echo "-s"` \
			`[ "$MX_RECIPIENT_CHECK" = "yes" ] && echo "-t"` \
			`[ "$KEEP_FAILED_DIRECTORIES" = "yes" ] && echo "-k"` \
			`[ "$MD_EXTRA" != "" ] && echo $MD_EXTRA` \
			-p $SOCKET
	eend $? "Failed to start mimedefang"
}

stop() {
	ebegin "Stopping mimedefang"
	start-stop-daemon --stop --quiet --retry 10 --oknodo --exec $PROGDIR/$prog --pidfile $PID
	RETVAL=$?

	if [ $RETVAL -eq "0" ] ; then
		rm -f $PID
		rm -f $SOCKET
	fi
	
	eend $RETVAL "Failed to stop mimedefang"

	ebegin "Stopping mimedefang-multiplexor"
	start-stop-daemon --stop --quiet --retry 10 --oknodo --exec $PROGDIR/$prog-multiplexor --pidfile $MXPID
	RETVAL=$?
	
	if [ $RETVAL -eq "0" ] ; then
		rm -f $MXPID
		rm -f $MX_SOCKET
	fi	
	
	eend $RETVAL "Failed to stop mimedefang-multiplexor"
}