diff options
Diffstat (limited to 'packages/quagga')
-rw-r--r-- | packages/quagga/quagga.sh | 75 | ||||
-rw-r--r-- | packages/quagga/quagga.xml | 18 |
2 files changed, 93 insertions, 0 deletions
diff --git a/packages/quagga/quagga.sh b/packages/quagga/quagga.sh new file mode 100644 index 00000000..e20dd15b --- /dev/null +++ b/packages/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/packages/quagga/quagga.xml b/packages/quagga/quagga.xml new file mode 100644 index 00000000..1b5caedc --- /dev/null +++ b/packages/quagga/quagga.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<packagegui> + <service> + <name>quagga</name> + <description></description> + <rcfile>quagga.sh</rcfile> + <executable>quagga</executable> + </service> + <additional_files_needed> + <item>http://www.pfsense.org/packages/quagga/quagga.sh</item> + <prefix>/usr/local/etc/rc.d</prefix> + <chmod>0777</chmod> + </additional_files_needed> + <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> |