#!/bin/sh
#
# Copyright 2003 Meru Networks
# All rights reserved.
#
PROC=/opt/meru/bin/RebridMover

START_DELAY=.2
STOP_DELAY=20

MNAME=`basename $PROC`
PIDFILE=/opt/wlan/var/run/${MNAME}.pid
LOG=/opt/wlan/var/log/${MNAME}.log

if [ -f /etc/init.d/meru-functions ]; then
	. /etc/init.d/meru-functions
else
	echo "/etc/init.d/meru-functions must exist to use $0"; exit 1
fi

start() {

    vrfy_combo `cat $PIDFILE 2>/dev/null` && {
        return  
    }   

    echo "============ $0 start =================" >> $LOG
    cd /opt/wlan/etc

    set_params

    # create the character device that is used by the process RebridMover for
    # ioctl's
    mknod  /dev/rebrid c 254 3 2>/dev/null
	
    if [ "$SECOND_INTERFACE_MODE" = "redundant" ];then

        $PROC -d -r $FIRST_IF -f $SECOND_IF  >> $LOG 2>&1

    elif [ "$SECOND_INTERFACE_MODE" = "active" ];then

        $PROC -a -r $FIRST_IF -f $SECOND_IF  >> $LOG 2>&1

    else

        $PROC -s -r $FIRST_IF -f $SECOND_IF >> $LOG 2>&1
    fi

    sleep $START_DELAY
    check_pid
    vrfy `cat $PIDFILE 2>/dev/null` || warning "$PROC did not start. Will try again."

}

stop() {

    monit_stop_process $STOP_DELAY 
}

#
# main()
#

case "$1" in
	start)
		if vrfy monit; then
			start_with_monit $MNAME
		else
			start
		fi	
		;;
	stop)
		if vrfy monit; then
			stop_with_monit $MNAME

			# Wait upto 30 seconds otherwise subsequent modules may not unload
			let j=30
			while [ ${j} -ne 0 ]; do
				if  vrfy $PROC  ; then
					sleep 1
					let j=${j}-1
				else
					break
				fi
			done
		else
			stop
		fi	
		;;
	restart)
		stop
		start
		;;
	mstart)
		set_myparams
		start
		;;
	mstop)
		stop
		;;
	*)
		echo $"Usage: $prog {start|stop|restart}"
		exit 1
esac

exit 0
