#! /bin/sh
# miredo-server		Teredo server
#
# chkconfig: - 46 69
# description:	miredo-server daemon to provide a Teredo server
# processname: miredo-server
# config: /etc/miredo/miredo-server.conf
# pidfile: /var/run/miredo-server.pid
#
### BEGIN INIT INFO
# Provides:          miredo-server
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $syslog
# Should-Start:      $time $syslog
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Teredo server
# Description:       miredo-server daemon to provide a Teredo server
### END INIT INFO

PATH=/usr/sbin:/usr/bin:/sbin:/bin
NAME=miredo-server
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS=""
DAEMON_USER="_miredo"
PIDFILE=/var/run/$NAME.pid
LOCKFILE=/var/lock/subsys/$NAME

[ -x "$DAEMON" ] || exit 0

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

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

# Source defaults.
SourceIfExists /etc/sysconfig/$NAME

# Ensure configuration is readable.
[ -r /etc/miredo/$NAME.conf ] || exit 0

check_start() {
	if [ "x$START_MIREDO_SERVER" != "xtrue" ]; then
		echo "START_MIREDO_SERVER is set to false in /etc/sysconfig/$NAME."
		echo "$DAEMON not starting."
		exit 0
	fi
	if [ -e /proc/sys/kernel/modprobe ]; then
		`cat /proc/sys/kernel/modprobe` ipv6 2>/dev/null
	fi
}

start()
{
	check_start
	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \
		--expect-user "$DAEMON_USER" -- "$DAEMON" $DAEMON_ARGS
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" -- "$DAEMON"
	RETVAL=$?
	return $RETVAL
}

restart()
{
	check_start # avoid stopping if would not restart
	stop
	sleep 1s
	start
}

reload()
{
	msg_reloading miredo
	stop_daemon --pidfile "$PIDFILE" --expect-user "$DAEMON_USER" -HUP -- "$DAEMON"
	RETVAL=$?
	return $RETVAL
} 

# See how we were called.
case "$1" in
	start|force-start)
		[ "x$1" = "xforce-start" ] && START_MIREDO_SERVER=true
		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" -- "$DAEMON"
		RETVAL=$?
		;;
	*)
		msg_usage "${0##*/} {start|force-start|stop|reload|restart|condstop|condrestart|condreload|status}"
		RETVAL=1
esac

exit $RETVAL

