#!/bin/sh
#
# kbrbserver.init	Start and stop the Kerberos 5 servers.
#
# chkconfig: 345 35 65
# description: Kerberos 5 is a trusted third-party authentication system.  \
#	       This script starts and stops the servers that Kerberos IV and 5 \
#	       clients need to connect to.
# processname: krb5kdc
# processname: kadmind
# processname: krb524d
#

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

# See how we were called.
case "$1" in
  start)
  	if [ ! -f /var/kerberos/krb5kdc/principal ] ; then
	    exit 0
	else
  	    if [ ! -f /var/kerberos/krb5kdc/kadm5.keytab ] ; then
		echo "Extracting kadm5 Service Keys"
		/usr/kerberos/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw" && success || fail
		echo
	    fi
	fi
	action "Starting Kerberos 5 KDC" /usr/kerberos/sbin/krb5kdc
	action "Starting Kerberos 5 Admin Server" /usr/kerberos/sbin/kadmind
	action "Starting Kerberos 5-to-4 Server" "/usr/kerberos/sbin/krb524d -m"
	touch /var/lock/subsys/krb5server
	;;
  stop)
	echo -n "Stopping Kerberos 5-to-4 Server" && killproc krb524d
	echo
	echo -n "Stopping Kerberos 5 Admin Server" && killproc kadmind
	echo
	echo -n "Stopping Kerberos 5 KDC" && killproc krb5kdc
	echo
	rm -f /var/lock/subsys/krb5server
	;;
  restart)
	$0 stop
	$0 start
	;;
  status)
	status krb5kdc
	status kadmind
	status krb524d
	;;
  *)
	echo "Usage: krb5server.init {start|stop|status|restart}"
	exit 1
	;;
esac

exit 0
