#! /bin/sh

@%@UCRWARNING=# @%@

### BEGIN INIT INFO
# Provides:          heimdal-kdc
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start KDC server
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
KDC_DAEMON=/usr/lib/heimdal-servers/kdc
KDC_NAME=heimdal-kdc
KDC_DESC="Heimdal KDC"
KPASSWDD_DAEMON=/usr/lib/heimdal-servers/kpasswdd
KPASSWDD_NAME=kpasswdd
KPASSWDD_DESC="Heimdal password server"

if [ -f "/etc/default/heimdal-kdc" ] ; then
	. /etc/default/heimdal-kdc
fi

test -f $KDC_DAEMON || exit 0
test -f $KPASSWDD_DAEMON || exit 0

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
. /lib/lsb/init-functions

# commented out due to bug #574425.
# set -e

case "$1" in
  start)
	# check ucr autostart setting
	if [ -f "/usr/share/univention-config-registry/init-autostart.lib" ]; then
	    . "/usr/share/univention-config-registry/init-autostart.lib"
	    check_autostart kdc-kpasswdd kerberos/autostart
	fi

	if [ "$KDC_ENABLED" = "yes" ];
	then
		echo -n "Starting $KDC_DESC: "
		start-stop-daemon --start --quiet --background \
			--make-pidfile --pidfile /var/run/$KDC_NAME.pid \
			--exec $KDC_DAEMON -- $KDC_PARAMS
		echo "$KDC_NAME."
	fi
	if [ "$KPASSWDD_ENABLED" = "yes" ];
	then
		echo -n "Starting $KPASSWDD_DESC: "
		start-stop-daemon --start --quiet --background \
			--make-pidfile --pidfile /var/run/$KPASSWDD_NAME.pid \
			--exec $KPASSWDD_DAEMON -- $KPASSWDD_PARAMS
		echo "$KPASSWDD_NAME."
	fi
	if [ "$MASTER_ENABLED" = "yes" ];
	then
		echo -n "Starting incremental propagation master: "
		start-stop-daemon --start --quiet --background \
			--make-pidfile --pidfile /var/run/ipropd-master.pid \
			--exec /usr/sbin/ipropd-master -- $MASTER_PARAMS
		echo "ipropd-master."
	fi
	if [ "$SLAVE_ENABLED" = "yes" ];
	then
		echo -n "Starting incremental propagation slave: "
		start-stop-daemon --start --quiet --background \
			--make-pidfile --pidfile /var/run/ipropd-slave.pid \
			--exec /usr/sbin/ipropd-slave -- $SLAVE_PARAMS
		echo "ipropd-slave."
	fi
	;;
  stop)
	if [ -f /var/run/$KPASSWDD_NAME.pid ]
	then
		echo -n "Stopping $KPASSWDD_DESC: "
		start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$KPASSWDD_NAME.pid \
			--exec $KPASSWDD_DAEMON -- $KPASSWDD_PARAMS
		echo "$KPASSWDD_NAME."
	fi
	if [ -f /var/run/$KDC_NAME.pid  ]
	then
		echo -n "Stopping $KDC_DESC: "
		start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$KDC_NAME.pid \
			--exec $KDC_DAEMON -- $KDC_PARAMS
		echo "$KDC_NAME."
	fi
	if [ -f /var/run/ipropd-master.pid ]
	then
		echo -n "Stopping incremental propagation master: "
		start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/ipropd-master.pid \
			--exec /usr/sbin/ipropd-master -- $MASTER_PARAMS
		echo "ipropd-master."
	fi
	if [ -f /var/run/ipropd-slave.pid ]
	then
		echo -n "Stopping incremental propagation slave: "
		start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/ipropd-slave.pid \
			--exec /usr/sbin/ipropd-slave -- $SLAVE_PARAMS
		echo "/usr/sbin/ipropd-slave."
	fi
	# see univention/dev/ucs#2312
	sleep 1
	;;
  #reload)
	#
	#	If the daemon can reload its config files on the fly
	#	for example by sending it SIGHUP, do it here.
	#
	#	If the daemon responds to changes in its config file
	#	directly anyway, make this a do-nothing entry.
	#
	# echo "Reloading $DESC configuration files."
	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
	#	/var/run/$NAME.pid --exec $DAEMON
  #;;
  restart|force-reload)
	#
	#	If the "reload" option is implemented, move the "force-reload"
	#	option to the "reload" entry above. If not, "force-reload" is
	#	just the same as "restart".
	#
	/etc/init.d/heimdal-kdc stop
	sleep 1
	/etc/init.d/heimdal-kdc start
	;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
