#!/bin/sh
# Start/stop/restart the rad2dhcp daemon.

.   ./dhcp-relay.inc

OPTIONS="-u -q $IFLIST -s $SECRET -P $PASSWORD -R $PORT -Q $QPS $SERVER -T $PRI_RECOVER_TIME"

print_err_msg()
{
	 setterm -underline on -reverse on && echo $1 && setterm -underline off -reverse off
}

is_running()
{
	ps ax|grep $PROGRAM|grep -v grep >/dev/null
	return $?
}

relay_start() {
if [ -x $PROGRAM ]; then
	echo -en "Starting $PROGRAM...\t\t\t"
	if is_running; then
		print_err_msg "$PROG_NAME already running!"
		exit 1
	fi
	#Starting process
	$PROGRAM $OPTIONS
	if is_running; then 
		echo 'Success'
	else print_err_msg "Failed to start $PROGRAM!"
	fi
else print_err_msg "$PROGRAM not exist or not executable!"
fi
}

# Stop relay:
relay_stop() {
	echo -en "Stopping $PROGRAM...\t\t\t"
	if is_running; then
		killall $PROG_NAME
        sleep 1
		if is_running; then
			print_err_msg "Failed to stop $PROGNAME"
		else echo 'Success'
		fi
	else print_err_msg "$PROG_NAME not running!"
	fi
}

# Restart relay:
relay_restart() {
    relay_stop
    sleep 1
    relay_start
}

case "$1" in
'start')
        relay_start
    ;;
'stop')
        relay_stop
    ;;
'restart')
        relay_restart
    ;;
'set_next_serv')
        killall -62 dhcrelay
        echo "Send SIGNAL_CHANGE_SERV to dhcrelay..."
    ;;
'set_pri_serv')
        killall -63 dhcrelay
        echo "Send SIGNAL_SET_PRI_SERVER to dhcrelay..."
    ;;
'stat')
        killall -64 dhcrelay
        echo "Use 'grep dhcrelay /var/log/daemon.log' for results."
    ;;
    *)
        echo "usage $0 start|stop|restart|stat|set_next_serv|set_pri_serv"
esac

