diff options
-rw-r--r-- | config/routed/routed.inc | 102 | ||||
-rw-r--r-- | config/routed/routed.xml | 92 | ||||
-rw-r--r-- | pkg_config.10.xml | 2 |
3 files changed, 104 insertions, 92 deletions
diff --git a/config/routed/routed.inc b/config/routed/routed.inc index f7ace8a5..471c2772 100644 --- a/config/routed/routed.inc +++ b/config/routed/routed.inc @@ -1,8 +1,9 @@ <?php -/* $Id$ */ /* routed.inc + part of pfSense (https://www.pfSense.org/) Copyright (C) 2006 Bill Marquette + Copyright (C) 2015 ESF, LLC All rights reserved. Redistribution and use in source and binary forms, with or without @@ -25,39 +26,42 @@ 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. - */ - function setup_routed() { global $config; $gw = ""; - if (!is_array($config['installedpackages']['routed'])) + if (!is_array($config['installedpackages']['routed'])) { return; - if (!is_array($config['installedpackages']['routed']['config'])) + } + if (!is_array($config['installedpackages']['routed']['config'])) { return; + } if (isset($config['installedpackages']['routed']['config'][0]['enable']) && - $config['installedpackages']['routed']['config'][0]['enable'] == "on") { + $config['installedpackages']['routed']['config'][0]['enable'] == "on") { /* if user selected individual interfaces */ $ifarr = array_flip(explode(",", $config['installedpackages']['routed']['config'][0]['iface_array'])); $allifs = get_interface_arr(); if (!empty($ifarr)) { - foreach($allifs as $ifname) { + foreach ($allifs as $ifname) { $friendly_ifname = convert_real_interface_to_friendly_interface_name($ifname); - if (array_key_exists($friendly_ifname, $ifarr)) + if (array_key_exists($friendly_ifname, $ifarr)) { $gw .= setup_etc_gateways($ifname, 'enable'); - else + } else { $gw .= setup_etc_gateways($ifname, 'disable'); + } } - } else + } else { /* setup for all interfaces */ $gw = setup_etc_gateways(); + } conf_mount_rw(); file_put_contents("/etc/gateways", $gw); - conf_mount_ro(); - restart_routed(); - } else - stop_routed(); + conf_mount_ro(); + restart_service("routed"); + } else { + stop_service("routed"); + } } function setup_etc_gateways($iface="", $mode="") { @@ -66,52 +70,56 @@ function setup_etc_gateways($iface="", $mode="") { $ret = ""; if ($iface != "") { $realif=convert_friendly_interface_to_real_interface_name($iface); - if (!empty($realif)) + if (!empty($realif)) { $ret = "if={$realif} "; + } } switch($mode) { - case "enable": - if ($config['installedpackages']['routed']['config'][0]['ripversion'] == "2") { - $ret .= "ripv2 "; - $passwd = $config['installedpackages']['routed']['config'][0]['passwd']; - if ($passwd != "") { - $ret .= "passwd={$passwd} "; - } - $add_no_ag = $config['installedpackages']['routed']['config'][0]['enable_no_ag']; - $add_no_super_ag = $config['installedpackages']['routed']['config'][0]['enable_no_super_ag']; - if($add_no_ag == "on") { - $ret .= "no_ag "; - } - if($add_no_super_ag == "on") { - $ret .= "no_super_ag "; + case "enable": + if ($config['installedpackages']['routed']['config'][0]['ripversion'] == "2") { + $ret .= "ripv2 "; + $passwd = $config['installedpackages']['routed']['config'][0]['passwd']; + if ($passwd != "") { + $ret .= "passwd={$passwd} "; + } + $add_no_ag = $config['installedpackages']['routed']['config'][0]['enable_no_ag']; + $add_no_super_ag = $config['installedpackages']['routed']['config'][0]['enable_no_super_ag']; + if ($add_no_ag == "on") { + $ret .= "no_ag "; + } + if ($add_no_super_ag == "on") { + $ret .= "no_super_ag "; + } } - } - break; - case "disable": - $ret .= "no_rip_out no_solicit no_rdisc no_rdisc_adv"; - break; - - default: - break; - + break; + case "disable": + $ret .= "no_rip_out no_solicit no_rdisc no_rdisc_adv"; + break; + default: + break; } $ret .= "\n"; return $ret; } -function start_routed() { - mwexec_bg("/sbin/routed"); -} - -function stop_routed() { - killbyname("routed"); +function routed_install_command() { + conf_mount_rw(); + write_rcfile(array( + "file" => "routed.sh", + "start" => "/usr/bin/nohup /sbin/routed > /dev/null 2>&1 &", + "stop" => "/bin/pkill routed" + ) + ); + conf_mount_ro(); } -function restart_routed() { - stop_routed(); - start_routed(); +function routed_deinstall_command() { + stop_service("routed"); + conf_mount_rw(); + unlink_if_exists("/usr/local/etc/rc.d/routed.sh"); + conf_mount_ro(); } ?> diff --git a/config/routed/routed.xml b/config/routed/routed.xml index 8764b172..b38d7ee3 100644 --- a/config/routed/routed.xml +++ b/config/routed/routed.xml @@ -1,51 +1,65 @@ <?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> +<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> <copyright> - /* $Id$ */ - /* - part of pfSense (https://www.pfsense.org/) +<![CDATA[ +/* $Id$ */ +/* ====================================================================================== */ +/* + routed.xml + part of pfSense (https://www.pfSense.org/) + Copyright (C) 2006 Bill Marquette <bill.marquette@gmail.com> + Copyright (C) 2015 ESF, LLC + All rights reserved. +*/ +/* ====================================================================================== */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: - Copyright (C) 2006 Bill Marquette - bill.marquette@gmail.com. - 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. - 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. - 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. - */ + 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> <name>routed</name> - <version>1.1</version> + <version>1.2</version> <title>Services: RIP</title> <include_file>/usr/local/pkg/routed.inc</include_file> - <additional_files_needed> <item>https://packages.pfsense.org/packages/config/routed/routed.inc</item> </additional_files_needed> - - <!-- Menu is where this packages menu will appear --> <menu> <name>RIP</name> <section>Services</section> <configfile>routed.xml</configfile> <url>pkg_edit.php?xml=routed.xml&id=0</url> </menu> + <service> + <name>routed</name> + <rcfile>routed.sh</rcfile> + <executable>routed</executable> + <description>Routing Information Protocol Daemon</description> + </service> <tabs> <tab> <text>ROUTED Settings</text> @@ -53,16 +67,12 @@ <active/> </tab> </tabs> - <!-- configpath gets expanded out automatically and config items will be - stored in that location --> <configpath>['installedpackages']['routed']['config']</configpath> - <!-- fields gets invoked when the user adds or edits a item. the following items - will be parsed and rendered for the user as a gui with input, and selectboxes. --> <fields> <field> <fielddescr>Enable RIP</fielddescr> <fieldname>enable</fieldname> - <description>Enables the Routing Information Protocol daemon</description> + <description>Enables the Routing Information Protocol daemon.</description> <type>checkbox</type> <enablefields>iface_array[],ripversion,passwd,enable_no_ag,enable_no_super_ag</enablefields> </field> @@ -73,7 +83,7 @@ <multiple>true</multiple> <size>3</size> <type>interfaces_selection</type> - <description>Select the interfaces that RIP will bind to. You can use the CTRL or COMMAND key to select multiple interfaces.</description> + <description>Select the interfaces that RIP will bind to. You can use the CTRL or COMMAND key to select multiple interfaces.</description> <required /> </field> <field> @@ -91,36 +101,30 @@ <field> <fielddescr>RIPv2 password</fielddescr> <fieldname>passwd</fieldname> - <description>Specify a RIPv2 password. This password will be sent - in the clear on all RIPv2 responses received and sent. - </description> + <description>Specify a RIPv2 password. This password will be sent in the clear on all RIPv2 responses received and sent.</description> <type>input</type> </field> <field> <fielddescr>no_ag</fielddescr> <fieldname>enable_no_ag</fieldname> - <description>turns off aggregation of subnets in RIPv1 and RIPv2 responses.</description> + <description>Turns off aggregation of subnets in RIPv1 and RIPv2 responses.</description> <type>checkbox</type> </field> <field> <fielddescr>no_super_ag</fielddescr> <fieldname>enable_no_super_ag</fieldname> - <description>turns off aggregation of networks into supernets in RIPv2 responses.</description> + <description>Turns off aggregation of networks into supernets in RIPv2 responses.</description> <type>checkbox</type> </field> </fields> <aftersaveredirect>pkg_edit.php?xml=routed.xml&id=0</aftersaveredirect> - <custom_php_command_before_form> - </custom_php_command_before_form> - <custom_delete_php_command> - </custom_delete_php_command> <custom_php_resync_config_command> - conf_mount_rw(); setup_routed(); - conf_mount_ro(); </custom_php_resync_config_command> <custom_php_install_command> + routed_install_command(); </custom_php_install_command> <custom_php_deinstall_command> + routed_deinstall_command(); </custom_php_deinstall_command> </packagegui> diff --git a/pkg_config.10.xml b/pkg_config.10.xml index c66d2b96..dad9fc88 100644 --- a/pkg_config.10.xml +++ b/pkg_config.10.xml @@ -426,7 +426,7 @@ <category>Network Management</category> <port_category>net</port_category> <config_file>https://packages.pfsense.org/packages/config/routed/routed.xml</config_file> - <version>1.1</version> + <version>1.2</version> <status>Stable</status> <required_version>2.2</required_version> <configurationfile>routed.xml</configurationfile> |