#! /bin/sh
# chkconfig: - 56 56
# description: GNU Zebra is a free software that manages TCP/IP based
#              routing protocol.
# processname: bgpd
# config: /etc/sysconfig/bgpd
# config: /etc/bgpd.conf

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

# Get config.
. /etc/sysconfig/network

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

# Get bgpd config
[ -f /etc/sysconfig/bgpd ] && . /etc/sysconfig/bgpd

RETVAL=0

start () {
    echo -n "Starting BGP routing services: "
    case $SILENT in true|yes) silent=-q ;; *) silent= ;; esac
    case $EXPORT_GATEWAY in true|yes) export=-g ;; *) export= ;; esac
    daemon bgpd --daemon $silent $export
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/bgpd
    return $RETVAL
}

stop () {
    echo -n "Stopping BGP routing services: "
    killproc bgpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/bgpd
    return $RETVAL
}

restart () {
    stop
    start
    RETVAL=$?
    return $RETVAL
}

reload () {
    echo -n "Reloading config bgpd: "
    killproc bgpd -HUP
    RETVAL=$?
    echo
    return $RETVAL
}

condrestart () {
    if [ -f /var/run/bgpd.pid ]; then
	stop
	start
	RETVAL=$?
    fi
    return $RETVAL
}

# See how we were called.
case "$1" in
    start)
        start
	;;
    stop)
        stop
	;;
    status)
	status bgpd
	;;
    restart)
        restart
	;;
    reload)
        reload
	;;
    condrestart)
        condrestart
	;;
    *)
	echo "Usage: bgpd {start|stop|status|restart|reload|condrestart}"
	exit 1
esac

exit $RETVAL
