#!/bin/bash
#
# krb5kdc      Start and stop the Kerberos 5 servers.
#
# chkconfig:   345 40 60
# description: Kerberos 5 is a trusted third-party authentication system.  \
#	       This script starts and stops the server that Kerberos IV and 5 \
#	       clients need to connect to in order to obtain credentials.
# processname: krb5kdc
#

WITHOUT_RC_COMPAT=1

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

# Get config.
SourceIfNotEmpty /etc/sysconfig/network

LOCKFILE=/var/lock/subsys/krb5kdc
KDC_PATH=/var/lib/kerberos/krb5kdc/
RETVAL=0

start()
{
    is_yes "$NETWORKING" || return 0

    [ -f "$KDC_PATH/principal" ] || return 0

    start_daemon --lockfile "$LOCKFILE" -- krb5kdc
    RETVAL=$?
    return $RETVAL
}

stop()
{
    stop_daemon --lockfile "$LOCKFILE" -- krb5kdc
    RETVAL=$?
    return $RETVAL
}

restart()
{
    stop
    start
}

reload()
{        
    msg_reloading krb5kdc
    stop_daemon --pidfile "$PIDFILE" --expect-user root -HUP -- krb5kdc
    RETVAL=$?
    return $RETVAL
}

# See how we were called.
case "$1" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    reload)
            reload
            ;;
    restart)
            restart
            ;;
    condstop)
            if [ -e "$LOCKFILE" ]; then
                    stop
            fi
            ;;
    condrestart)
            if [ -e "$LOCKFILE" ]; then
                    restart
            fi
            ;;
    condreload)
            if [ -e "$LOCKFILE" ]; then
                    reload
            fi
            ;;
    status)
            status --pidfile "$PIDFILE" --expect-user root -- krb5kdc
            RETVAL=$?
            ;;
    *)
            msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
            RETVAL=1
esac

exit $RETVAL
