diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/routed.inc | 87 | ||||
-rw-r--r-- | packages/routed.xml | 104 |
2 files changed, 191 insertions, 0 deletions
diff --git a/packages/routed.inc b/packages/routed.inc new file mode 100644 index 00000000..2ccadf4c --- /dev/null +++ b/packages/routed.inc @@ -0,0 +1,87 @@ +<?php +/* $Id$ */ +/* + routed.inc + Copyright (C) 2006 Bill Marquette + 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. + +*/ + +function setup_routed() { + global $config; + $gw = ""; + + if ($config['installedpackages']['routed']['config'][0]['enable'] == "on") { + /* if user selected individual interfaces */ + if (is_array($config['installedpackages']['routed']['config'][0]['interface_array'])) { + $ifarr = $config['installedpackages']['routed']['config'][0]['interface_array']; + foreach($ifarr as $iface) { + $gw .= setup_etc_gateways($iface); + } + } else { + /* setup for all interfaces */ + $gw = setup_etc_gateways(); + } + $fd = fopen("/etc/gateways", "w"); + fwrite($fd, $gw); + fclose($fd); + restart_routed(); + } else { + stop_routed(); + } +} + +function setup_etc_gateways($iface="") { + global $config; + + if ($iface != "") { + $realif= convert_friendly_interface_to_real_interface_name($iface); + $ret = "if={$realif} "; + } + if ($config['installedpackages']['routed']['config'][0]['ripversion'] == "2") { + $ret .= "ripv2 "; + } + $passwd = $config['installedpackages']['routed']['config'][0]['passwd']; + if ($passwd != "") { + $ret .= "passwd={$passwd} "; + } + $ret .= "\n"; + + return $ret; +} + +function start_routed() { + mwexec("/sbin/routed"); +} + +function stop_routed() { + mwexec("killall routed"); +} + +function restart_routed() { + stop_routed(); + start_routed(); +} + +?> diff --git a/packages/routed.xml b/packages/routed.xml new file mode 100644 index 00000000..9a2b76da --- /dev/null +++ b/packages/routed.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="utf-8" ?> +<packagegui> + <copyright> + /* $Id$ */ + /* + part of pfSense (http://www.pfsense.org/) + + 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. + + 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> + <name>routed</name> + <version>1.0</version> + <title>Services: RIP</title> + <include_file>routed.inc</include_file> + <!-- Menu is where this packages menu will appear --> + <menu> + <name>RIP</name> + <section>Services</section> + <configfile>routed.xml</configfile> + </menu> + <tabs> + <tab> + <text>ROUTED Settings</text> + <url>/pkg_edit.php?xml=routed.xml</url> + <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> + <type>checkbox</type> + </field> + <field> + <fielddescr>Interfaces</fielddescr> + <fieldname>interface_array</fieldname> + <value>lan</value> + <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> + </field> + <field> + <fielddescr>RIP Version</fielddescr> + <fieldname>ripversion</fieldname> + <type>select</type> + <default_value>2</default_value> + <options> + <option><name>RIP Version 1</name><value>1</value></option> + <option><name>RIP Version 2</name><value>2</value></option> + </options> + <typehint>Select which RIP version the daemon will listen/advertise using.</typehint> + </field> + <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> + <type>input</type> + </field> + </fields> + <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> + </custom_php_install_command> + <custom_php_deinstall_command> + </custom_php_deinstall_command> +</packagegui> |