#!/bin/bash
#
# chkconfig: - 16 84
# description: An OSPF v2 routing engine for use with Zebra
#
# processname: ospfd
# config: /etc/zebra/ospfd.conf

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

# Get network config
. /etc/sysconfig/network

# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0

# The process must be configured first.
[ -f /etc/zebra/ospfd.conf ] || exit 0

RETVAL=0

prog="ospfd"

case "$1" in
  start)
	echo -n $"Starting $prog: "
        daemon /usr/sbin/ospfd -d
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospfd
	echo
	;;
  stop)
	echo -n $"Shutting down $prog: "
	killproc ospfd
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospfd
	echo
	;;
  restart|reload)
        $0 stop
        $0 start
	RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/ospfd ]; then
                $0 stop
		$0 start
        fi
	RETVAL=$?
        ;;
  status)
        status ospfd
	RETVAL=$?
        ;;
  *)
	echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
	exit 1
esac

exit $RETVAL
