#! /bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="NEGOTIATE Authentication Daemon"
NAME=negotiate_authd
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/cnv4/$NAME.pid
SCRIPTNAME=/etc/init.d/negotiate_authd

SPN=`klist -k /etc/HTTP.keytab | grep HTTP/ | head -n 1 | awk '{print $2;'}`

RUN_DAEMON=`/usr/lib/cnv4/get_auth_config_type.sh | /bin/grep -c negotiate`

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

test -d /var/run/cnv4 || mkdir /var/run/cnv4

# Read config file if it is present.
#if [ -r /etc/default/$NAME ]
#then
#       . /etc/default/$NAME
#fi

#
#       Function that starts the daemon/service.
#
d_start() {
    if [ ${RUN_DAEMON} -eq "0" ]
        then
        exit
    fi
    touch /var/run/cnv4/placeholder.dat
    rm /var/run/cnv4/*.dat 2>/dev/null >/dev/null || true
    start-stop-daemon -b --start --exec /usr/sbin/negotiate_authd -- start 1000 ${SPN}
}

#
#       Function that stops the daemon/service.
#
d_stop() {
    /usr/sbin/negotiate_authd stop
    rm /var/run/cnv4/negotiate_authd.pid 2>/dev/null >/dev/null || true
    sleep 1
    /usr/bin/killall -q -KILL /usr/bin/negotiate_auth || true
    sleep 1
    /usr/bin/killall -q -KILL /usr/sbin/negotiate_authd || true
    touch /var/run/cnv4/placeholder.dat
    rm /var/run/cnv4/*.dat 2>/dev/null >/dev/null || true
}

#
#       Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                --name $NAME --signal 1
}

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        d_stop
        echo "."
        ;;
  #reload)
        #
        #       If the daemon can reload its configuration without
        #       restarting (for example, when it is sent a SIGHUP),
        #       then implement that here.
        #
        #       If the daemon responds to changes in its config file
        #       directly anyway, make this an "exit 0".
        #
        # echo -n "Reloading $DESC configuration..."
        # d_reload
        # echo "done."
  #;;
  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".
        #
        echo -n "Restarting $DESC: $NAME"
        d_stop
        sleep 5
        d_start
        echo "."
        ;;
  *)
        # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

