#!/bin/bash
#
# Init file for DELL SOL Telnet Proxy daemon
# Modified version by Fabien Wernli
# as to spawn as many daemons as needed
# and as specified in $SOLDAT configuration file
#
# chkconfig: 345 56 26
# description: OSA Baseboard Management Controller (BMC) Management Utility.  \
#			   Powered by OSA Technologies Inc., an Avocent Company
#
# processname: solproxyd
# config: /etc/solproxy.cfg
# pidfile:

SOLPROXY=/usr/sbin/solproxyd

# source function library
. /etc/rc.d/init.d/functions

# pull in sysconfig settings
# [ -f /etc/sysconfig/solproxy ] && . /etc/sysconfig/solproxy

[ ! -x $SOLPROXY ] && exit 5

SOLCFG=/etc/solproxy.cfg
SOLDAT=/opt/conserver/solproxy/sol.proxy.dat
prog=`basename $SOLPROXY`

LOGDEV=/dev/null

start()
{
        while read hn ip pn; do
	if [ -n "$hn" -a "${hn###}" = "$hn" ]; then 
		SCFG=/var/run/conserver/solproxy.${hn}.cfg
		if [ ! -f $SCFG ]; then
			cp $SOLCFG $SCFG
			echo port=$pn >> $SCFG
                	$SOLPROXY -f $SCFG >>$LOGDEV 2>&1 &
			echo started solproxy for $hn on port $pn
		else
			echo solproxy for $hn already running on port $pn
		fi
	fi
        done < $SOLDAT
        [ "`pidof $prog`" = "" ] && failure || success
        echo
}

stop()
{
        echo -n $"Stopping $prog:"
        kill -TERM `pidof $prog` >>$LOGDEV 2>&1 && rm /var/run/conserver/solproxy.*.cfg
	sleep 1
        status $prog >>$LOGDEV 2>&1
        [ $? -eq 0 ] && failure || success
        echo
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                sleep 2
                ;;
        restart|reload)
                stop
                sleep 2
                start
                ;;
        status)
                status $SOLPROXY
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload|status}"
esac

