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

START_DELAY=.2

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

set_platform

init() {

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

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

    case $PLATFORM in
        MC1000|MC3000)
            # display boot message 
            $PROC -i $PLATFORM >> $LOG 2>&1 &
            ;;
        MC4000|MC4100)
            # cleanup device
            rm -f /dev/ttyS1

            # create device
            mknod -m 660 /dev/ttyS1 c 4 65 # base address 0x2F8
            chown root:tty /dev/ttyS1
            sleep $START_DELAY
            stty -F /dev/ttyS1 115200

            # display boot message 
            $PROC -i $PLATFORM >> $LOG 2>&1 &
            ;;
    esac
}

unconfigured() {

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

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

    case $PLATFORM in
        MC1000|MC3000|MC4000|MC4100)
            # display unconfigured message
            $PROC -n $PLATFORM >> $LOG 2>&1 &
            ;;
    esac
}

start() {

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

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

    case $PLATFORM in
        MC1000|MC3000|MC4000|MC4100)
            $PROC -t $PLATFORM >> $LOG 2>&1 &
            sleep $START_DELAY
            check_pid
            vrfy `cat $PIDFILE 2>/dev/null` || warning "$PROC did not start. Will try again."
            ;;
    esac
}

stop() {

    monit_stop_process
}

case "$1" in
        init)
		init	
		;;
        unconfigured)
		unconfigured	
		;;
	start)
		if vrfy monit; then
			start_with_monit $MNAME
		else
			start
		fi
		;;
	stop)
		if vrfy monit; then
                        stop_with_monit $MNAME
		else
			stop
		fi
		;;
	restart)
		if vrfy monit; then
                        restart_with_monit $MNAME
		else
			stop
			start
		fi
		;;
	mstart)
		start
		;;
	mstop)
		stop
		;;
	*)
		echo $"Usage: $prog {init|start|stop|restart|unconfigured}"
		exit 1
esac

exit 0
