diff options
Diffstat (limited to 'config/quagga_ospfd')
-rw-r--r-- | config/quagga_ospfd/quagga_ospfd.inc | 13 | ||||
-rw-r--r-- | config/quagga_ospfd/quagga_ospfd.xml | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/config/quagga_ospfd/quagga_ospfd.inc b/config/quagga_ospfd/quagga_ospfd.inc index 46037bd9..591b9772 100644 --- a/config/quagga_ospfd/quagga_ospfd.inc +++ b/config/quagga_ospfd/quagga_ospfd.inc @@ -243,6 +243,18 @@ function quagga_ospfd_install_conf() { fwrite($fd, $zebraconffile); fclose($fd); + $carp_ip_status_check = ""; + if (is_ipaddr($ospfd_conf['carpstatusip'])) { + $carpcheckinterface = trim(find_carp_interface($ospfd_conf['carpstatusip'])); + $carp_ip_status_check = <<<EOF +CARP_STATUS=`/sbin/ifconfig ${carpcheckinterface} | /usr/bin/grep carp: | /usr/bin/awk '{print $2;}'` +if [ \${CARP_STATUS} != "MASTER" ]; then + exit; +fi +EOF; + } + + // Create rc.d file $rc_file_stop = <<<EOF if [ -e /var/run/quagga/zebra.pid ]; then @@ -274,6 +286,7 @@ fi killall -9 zebra 2>/dev/null killall -9 ospfd 2>/dev/null sleep 1 +{$carp_ip_status_check} /usr/local/sbin/zebra -d -f {$quagga_config_base}/zebra.conf /usr/local/sbin/ospfd -d -f {$quagga_config_base}/ospfd.conf EOF; diff --git a/config/quagga_ospfd/quagga_ospfd.xml b/config/quagga_ospfd/quagga_ospfd.xml index c48d0f47..a03f9e3c 100644 --- a/config/quagga_ospfd/quagga_ospfd.xml +++ b/config/quagga_ospfd/quagga_ospfd.xml @@ -1,6 +1,6 @@ <packagegui> <name>quagga_ospfd</name> - <version>0.5.3</version> + <version>0.5.4</version> <title>Services: Quagga OSPFd</title> <include_file>/usr/local/pkg/quagga_ospfd.inc</include_file> <aftersaveredirect>pkg_edit.php?xml=quagga_ospfd.xml&id=0</aftersaveredirect> |