#!/bin/sh
#
# racoon	Internet Key Exchange (IKE) daemon.
#
# chkconfig:	345 55 85
#
# description:	Internet Key Exchange (IKE) daemon for automatically keying
#		IPsec connections.
#
# $Id: ipsec-tools-racoon.init,v 1.5 2005/12/08 01:02:49 glen Exp $


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

# Get network config
. /etc/sysconfig/network

# Get service config - may override defaults
[ -f /etc/sysconfig/racoon ] && . /etc/sysconfig/racoon

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


# See how we were called.
case "$1" in
  start)

	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/racoon ]; then
		# Setting up SPD policies is not required.
		if [ -f $SETKEY_CONF ]; then
		    show "Setting up SPD policies"
		    busy
		    setkey $SETKEY_OPTIONS -f $SETKEY_CONF
		    ok
		fi

		msg_starting racoon
		daemon racoon $RACOON_OPTIONS -f $RACOON_CONF
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/racoon
	else
		msg_already_running racoon
	fi
	;;
  stop)
	if [ -f /var/lock/subsys/racoon ]; then
		# Stop daemons.
		msg_stopping racoon
		killproc racoon
		rm -f /var/lock/subsys/racoon
		# Flush SPD policies if required
		if [ -n "$SETKEY_FLUSH_OPTIONS" ]; then
			show "Flushing SPD policies"
			busy
			setkey $SETKEY_FLUSH_OPTIONS
			ok
		fi

	else
		msg_not_running racoon
	fi
	;;
  restart)
	$0 stop
	$0 start
	exit $?
	;;
  status)
	status racoon
	RETVAL=$?
	;;
  *)
	msg_usage "$0 {start|stop|restart|status}"
	exit 3
esac

exit $RETVAL

# This must be last line !
# vi:syntax=sh:tw=78:ts=8:sw=4
