#!/bin/bash

# Bring up/down radvd

. /bin/network-functions

PIDFILE=/var/run/radvd.pid
SERVICE=radvd
PROCESS_NAME=radvd
RADVD_CONF=/var/run/radvd.conf
DEV=lan0

do_start ()
{
	if ! ServiceCheckRunning1 ; then
		return $?
	fi

	/etc/init.d/softdogd wait

	# create RADVD_CONF file
	PREFIX="::/64"
	echo "interface "$DEV > $RADVD_CONF
	echo "{" >> $RADVD_CONF
	echo "AdvSendAdvert on;" >> $RADVD_CONF
	echo "MinRtrAdvInterval 30;" >> $RADVD_CONF
	echo "MaxRtrAdvInterval 100;" >> $RADVD_CONF
	if [  ! -z $PREFIX ]; then
		echo "prefix "$PREFIX >> $RADVD_CONF
		echo "{" >> $RADVD_CONF
		echo "AdvOnLink off;" >> $RADVD_CONF
		echo "AdvAutonomous on;" >> $RADVD_CONF
		echo "AdvRouterAddr on;" >> $RADVD_CONF
		echo "};" >> $RADVD_CONF
	fi
	echo "};" >> $RADVD_CONF

	/bin/$PROCESS_NAME -C $RADVD_CONF --pidfile=$PIDFILE --logmethod=syslog
	ServiceCheckRunning2

	return
}

do_stop ()
{
	/etc/init.d/softdogd wait

	ServiceStop

	return $?
}

do_status ()
{
	ServiceStatus

	return $?
}

case "$1" in
	start)
		do_start
		;;
	stop)
		do_stop
		;;
	status)
		do_status
		;;
	restart)
		do_stop
		do_start
		;;
	*)
		echo "Usage: $0 {start|stop|restart|status}"
		exit 1
esac

exit $?
