#!/bin/sh
#
#	@author Forrest Lin
#

SYSLOGD_ENABLE=1
SYSLOGD_LOG_LEVEL=7
SYSLOGD_DISPLAY_LEVEL=7
SYSLOGD_REMOTE_ENABLE=0
SYSLOGD_REMOTE_HOST=
SYSLOGD_REMOTE_PORT=514

eval `/sbin/sncfg mget SYSLOGD_ENABLE SYSLOGD_LOG_LEVEL SYSLOGD_DISPLAY_LEVEL SYSLOGD_REMOTE_ENABLE SYSLOGD_REMOTE_HOST SYSLOGD_REMOTE_PORT`

set -o noclobber
while ! echo "" > /var/run/sysklogd.lock ; do
        sleep 1
done
set +o noclobber

start() {
	if [ "$SYSLOGD_REMOTE_ENABLE" != "0" ] && [ "SYSLOGD_REMOTE_HOST" != "" ] ; then
		REMOTE="-R $SYSLOGD_REMOTE_HOST:$SYSLOGD_REMOTE_PORT -L"
	else
		REMOTE=""
	fi
	/sbin/syslogd -s 64 -b 1 -l $SYSLOGD_LOG_LEVEL $REMOTE  && /sbin/klogd
	ret=$?
}

stop() {
	killall -q klogd syslogd
	ret=$?
	if [ $ret = 0 ] ; then
		sleep 1
	fi
}

case "$1" in
	start)
		if [ "$SYSLOGD_ENABLE" == "0" ] ; then
			exit 0
		fi
		echo -n "[Strating] syslog and klog daemon ... "
		start
	;;
	stop)
		echo -n "[Stopping] syslog and klog daemon ... "
		stop		
	;;
	reload)
		if [ "$SYSLOGD_ENABLE" == "0" ] ; then
			echo -n "[Stopping] syslog and klog daemon ... "
			stop
		else
			echo -n "[Reloading] syslog and klog daemon ... "
			stop
			start
		fi
	;;
	*)
		echo "Usage: $0 {start|stop|reload}"
		rm -f /var/run/sysklogd.lock
		exit 255
	;;
esac

if [ $ret = 0 ] ; then
	echo " OK"
	rm -f /var/run/sysklogd.lock
	exit 0
else
	echo " FAIL"
	rm -f /var/run/sysklogd.lock
	exit 1
fi 
