#! /bin/sh
#
# ipfm		IP Flow Meter
#
# chkconfig:	345 95 15
# description:	ipfm bandwidth analysis tool
# processname:	ipfm
# pidfile:	/var/run/ipfm.pid
# config:	/etc/ipfm/ipfm.conf

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

# Get network config
. /etc/sysconfig/network

if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
		msg_network_down ipfm
		exit 1
	fi
else
	exit 0
fi

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/ipfm
NAME=ipfm
PID=/var/run/ipfm.pid

RETVAL=0
case "$1" in
  start)
	if [ ! -f /var/lock/subsys/ipfm ]; then
		for i in `echo /etc/ipfm/*.conf`; do
			if [ -f /var/run/ipfm.pid ]; then
				mv -f /var/run/ipfm.pid /var/run/ipfm.pid.tmp
			fi
			msg_starting "ipfm ($i)"
			daemon ipfm -c $i
			[ $RETVAL -eq 0 ] && RETVAL=$?
			if [ -f /var/run/ipfm.pid.tmp ]; then
				cat /var/run/ipfm.pid.tmp >> /var/run/ipfm.pid
				rm -f /var/run/ipfm.pid.tmp
			fi
		done
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ipfm
	else
		msg_already_running ipfm
	fi
	;;
  stop)
	if [ -f /var/lock/subsys/ipfm ]; then
		msg_stopping ipfm
		busy
		cat /var/run/ipfm.pid | xargs kill
		RETVAL=$?
		[ $RETVAL -eq 0 ] && ok || fail
		rm -f /var/lock/subsys/ipfm /var/run/ipfm.pid >/dev/null 2>&1
	else
		msg_not_running ipfm
	fi
	;;
  status)
	status ipfm
	exit $?
	;;
  restart)
	$0 stop
	$0 start
	exit $?
	;;
  reload|force-reload)
	if [ -f /var/lock/subsys/ipfm ]; then
		msg_reloading ipfm
		kilproc --signal 1 `cat $PID`
		RETVAL=$?
	else
		msg_not_running ipfm >&2
		exit 7
	fi
	;;
  *)
	msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
	exit 3
esac

exit $RETVAL
