aboutsummaryrefslogtreecommitdiffstats
path: root/config/quagga
diff options
context:
space:
mode:
Diffstat (limited to 'config/quagga')
-rw-r--r--config/quagga/quagga.sh75
-rw-r--r--config/quagga/quagga.xml69
2 files changed, 144 insertions, 0 deletions
diff --git a/config/quagga/quagga.sh b/config/quagga/quagga.sh
new file mode 100644
index 00000000..6a9727d7
--- /dev/null
+++ b/config/quagga/quagga.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# Quagga.sh retrofitted for pfSense
+# part of the pfSense quagga project
+#
+# You may also wish to use the following variables to fine-tune startup:
+# quagga_flags="-d"
+# quagga_daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd"
+# Per daemon tuning may be done with daemon_name_flags
+# zebra_flags="-dP 0"
+# bgpd_flags="-dnrP 0" and so on
+#
+# If the quagga daemons require additional shared libraries to start,
+# use the following variable to run ldconfig(8) in advance:
+# quagga_extralibs_path="/usr/local/lib ..."
+#
+
+. /etc/rc.subr
+
+mkdir -p /var/run/quagga
+
+name="quagga"
+rcvar=`set_rcvar`
+
+stop_postcmd=stop_postcmd
+
+stop_postcmd()
+{
+ rm -f $pidfile
+}
+
+# set defaults
+
+load_rc_config $name
+
+quagga_enable="YES"
+quagga_flags="-d"
+quagga_daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd"
+quagga_extralibs_path=""
+
+quagga_cmd=$1
+
+case "$1" in
+ force*)
+ quagga_cmd=${quagga_cmd#force}
+ ;;
+ fast*)
+ quagga_cmd=${quagga_cmd#fast}
+ ;;
+esac
+
+case "${quagga_cmd}" in
+ start)
+ if [ ! -z ${quagga_extralibs_path} ]; then
+ /sbin/ldconfig -m ${quagga_extralibs_path}
+ fi
+ ;;
+ stop)
+ quagga_daemons=$(reverse_list ${quagga_daemons})
+ ;;
+esac
+
+for daemon in ${quagga_daemons}; do
+ command=/usr/local/sbin/${daemon}
+ required_files=/usr/local/etc/quagga/${daemon}.conf
+ pidfile=/var/run/quagga/${daemon}.pid
+ if [ ${quagga_cmd} = "start" -a ! -f ${required_files} ]; then
+ continue
+ fi
+ if [ ${quagga_cmd} = "stop" -a -z $(check_process ${command}) ]; then
+ continue
+ fi
+ eval flags=\$\{${daemon}_flags:-\"${quagga_flags}\"\}
+ run_rc_command "$1"
+done
diff --git a/config/quagga/quagga.xml b/config/quagga/quagga.xml
new file mode 100644
index 00000000..4f4b65dc
--- /dev/null
+++ b/config/quagga/quagga.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?>
+<packagegui>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ========================================================================== */
+/*
+ authng.xml
+ part of pfSense (http://www.pfSense.com)
+ Copyright (C) 2007 to whom it may belong
+ All rights reserved.
+
+ Based on m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+ */
+/* ========================================================================== */
+/*
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+/* ========================================================================== */
+ ]]>
+ </copyright>
+ <description>Describe your package here</description>
+ <requirements>Describe your package requirements here</requirements>
+ <faq>Currently there are no FAQ items provided.</faq>
+ <name>none</name>
+ <version>none</version>
+ <title>none</title>
+ <service>
+ <name>quagga</name>
+ <rcfile>quagga.sh</rcfile>
+ <executable>quagga</executable>
+ <description></description>
+ </service>
+ <additional_files_needed>
+ <prefix>/usr/local/etc/rc.d/</prefix>
+ <chmod>0777</chmod>
+ <item>http://www.pfsense.org/packages/config/quagga/quagga.sh</item>
+ </additional_files_needed>
+ <custom_php_install_command>
+ mwexec("/usr/local/etc/rc.d/quagga.sh start");
+ </custom_php_install_command>
+ <custom_php_deinstall_command>
+ mwexec("rm /usr/local/etc/rc.d/quagga*");
+ mwexec("rm /usr/local/etc/rc.d/watchquagga");
+ </custom_php_deinstall_command>
+</packagegui>