#! /bin/sh
#
# sqlrelay   This starts and stops SQL relay.
#
# chkconfig: 345 85 15
# description: Persistent database connection system.
#
# $Id: sqlrelay.init,v 1.5 2006/09/12 14:32:41 glen Exp $

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

# Get network config
. /etc/sysconfig/network

# Check that networking is up.
if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
		msg_network_down sqlrelay
		exit 1
	fi
else
	exit 0
fi

RETVAL=0

start() {
	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/sqlrelay ]; then
		msg_starting "SQL Relay"; echo ""
		launched=0
		for connid in `grep -v ^# /etc/sqlrelay/sqlrelay.instances`; do
			show "Launching instance with id '%s':" ${connid}
			daemon sqlr-start -id ${connid}
			RETVAL=$?
			[ $RETVAL -eq 0 ] && ok || fail
			launched=1
		done
		[ "$launched" -eq 1 ] || started
		echo

		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sqlrelay
	else
		msg_already_running sqlrelay
	fi
	return $RETVAL
}

stop() {
	if [ -f /var/lock/subsys/sqlrelay ]; then
		msg_stopping "SQL Relay"
		sqlr-stop >/dev/null 2>&1
		RETVAL=$?
		[ $RETVAL -eq 0 ] && ok || fail
		[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sqlrelay
	else
		msg_not_running sqlrelay
	fi
    return $RETVAL
}

restart() {
	if [ -f /var/lock/subsys/sqlrelay ]; then
		stop
	fi
    start
}

# See how we were called.
case "$1" in
start)
	start
	;;
stop)
	stop
	;;
status)
	status sqlr-listener
	;;
restart)
	restart
	;;
*)
	msg_usage "$0 {start|stop|restart|status}"
	exit 3
esac

exit $RETVAL
