blob: 65dd299d751974ed7b611f700aa60f8166c5a147 [file] [log] [blame]
#!/bin/sh
running() {
[ -n "$(pgrep -f $1)" ]
}
write_configs() {
AREA=1
IPADDR=$(ip addr show lan0 | grep "^ inet " | sed -e 's/^ inet // ; s/ .*$//')
cat > /tmp/zebra.conf <<EOF
EOF
chown quagga:quagga /tmp/zebra.conf
chmod 600 /tmp/zebra.conf
cat > /tmp/ospfd.conf <<EOF
router ospf
network ${IPADDR} area ${AREA}
redistribute connected
passive-interface lo
!
log stdout
EOF
chown quagga:quagga /tmp/ospfd.conf
chmod 600 /tmp/ospfd.conf
}
start() {
if running zebra || running ospfd ; then
exit 0
fi
CFGFILE=/config/spacecast/SpacecastAnycast.json
# Exit if anycast is not enabled.
if [ ! -f $CFGFILE ] || grep -qv ENABLE_ANYCAST $CFGFILE ; then
exit 0
fi
write_configs
babysit 60 zebra -f /tmp/zebra.conf 2>&1 | logos "zebra" &
babysit 60 ospfd -f /tmp/ospfd.conf 2>&1 | logos "ospfd" &
}
stop() {
pkillwait -x zebra
pkillwait -x ospfd
rm -f /tmp/ospfd.conf
rm -f /tmp/zebra.conf
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
sleep)
sleep 60
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0