#!/bin/sh
#
# exim		This shell script takes care of starting and stopping Exim.
#
# chkconfig:	2345 80 30
# description:	Exim is a Mail Transport Agent, which is the program \
#		that moves mail from one machine to another.
# processname:	exim
# config:	/etc/exim.cf
# pidfile:	/var/spool/exim/exim-daemon.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Source exim configureation.
if [ -f /etc/sysconfig/exim ]; then
	. /etc/sysconfig/exim
else
	QUEUE=1h
fi

# Check that networking is up.
if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
		msg_network_down Exim
		exit 1
	fi
else
	exit 0
fi

RETVAL=0
# See how we were called.
case "$1" in
  start)
	# Start daemons.
	if [ ! -f /var/lock/subsys/exim ]; then
		msg_starting Exim
		daemon exim \
			$( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
			$( [ -n "$QUEUE" ] && echo -q$QUEUE )
		for CONFIG in $EXIM_EXTRA_CONFIGS; do
				msg_starting "Exim ($CONFIG)"
				daemon exim \
					$( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
					$( [ -n "$QUEUE" ] && echo -q$QUEUE ) \
					-C $CONFIG
		done
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/exim
	else
		msg_already_running Exim
	fi
	;;
  stop)
	# Stop daemons.
	if [ -f /var/lock/subsys/exim ]; then
		msg_stopping Exim
		killproc --pidfile /var/spool/exim/exim-daemon.pid exim
		rm -f /var/lock/subsys/exim /var/spool/exim/exim-daemon.pid >/dev/null 2>&1
	else
		msg_not_running Exim
	fi
	;;
  restart)
	$0 stop
	$0 start
	exit $?
	;;
  status)
	status exim
	exit $?
	;;
  configtest)
	exim -bV || exit $?
	;;

  reload|force-reload)
	if [ -f /var/lock/subsys/exim ]; then
		run_cmd "Checking exim configuration" exim -bV
		if [ $? -eq 0 ]; then
			msg_reloading Exim
			killproc exim -HUP
			RETVAL=$?
		fi
	else
		msg_not_running Exim
		exit 7
	fi
	;;
  *)
	msg_usage "$0 {start|stop|restart|reload|force-reload|configtest|status}"
	exit 3
esac

exit $RETVAL
