diff --git a/src/www/system_gateway_groups.php b/src/www/system_gateway_groups.php index c88e6f532..999588451 100644 --- a/src/www/system_gateway_groups.php +++ b/src/www/system_gateway_groups.php @@ -1,30 +1,30 @@ . - All rights reserved. + Copyright (C) 2014-2015 Deciso B.V. + Copyright (C) 2010 Seth Mos . + All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + 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. */ require_once("guiconfig.inc"); @@ -36,55 +36,56 @@ require_once("rrd.inc"); // Resync and restart all VPNs using a gateway group. function openvpn_resync_gwgroup($gwgroupname = "") { - global $g, $config; + global $config; - if ($gwgroupname <> "") { - if (isset($config['openvpn']['openvpn-server'])) { - foreach ($config['openvpn']['openvpn-server'] as & $settings) { - if ($gwgroupname == $settings['interface']) { - log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " server " . $settings["description"] . "."); - openvpn_resync('server', $settings); - } - } - } + if (!empty($gwgroupname)) { + if (isset($config['openvpn']['openvpn-server'])) { + foreach ($config['openvpn']['openvpn-server'] as & $settings) { + if ($gwgroupname == $settings['interface']) { + log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " server " . $settings["description"] . "."); + openvpn_resync('server', $settings); + } + } + } - if (isset($config['openvpn']['openvpn-client'])) { - foreach ($config['openvpn']['openvpn-client'] as & $settings) { - if ($gwgroupname == $settings['interface']) { - log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " client " . $settings["description"] . "."); - openvpn_resync('client', $settings); - } - } - } - - // Note: no need to resysnc Client Specific (csc) here, as changes to the OpenVPN real interface do not effect these. - - } else - log_error("openvpn_resync_gwgroup called with null gwgroup parameter."); + if (isset($config['openvpn']['openvpn-client'])) { + foreach ($config['openvpn']['openvpn-client'] as & $settings) { + if ($gwgroupname == $settings['interface']) { + log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " client " . $settings["description"] . "."); + openvpn_resync('client', $settings); + } + } + } + // Note: no need to resysnc Client Specific (csc) here, as changes to the OpenVPN real interface do not effect these. + } else { + log_error("openvpn_resync_gwgroup called with null gwgroup parameter."); + } } -if (!is_array($config['gateways'])) { - $config['gateways'] = array(); +if (!isset($config['gateways']['gateway_group']) || !is_array($config['gateways']['gateway_group'])) { + $a_gateway_groups = array(); +} else { + $a_gateway_groups = &$config['gateways']['gateway_group']; } -if (!is_array($config['gateways']['gateway_item'])) { - $config['gateways']['gateway_item'] = array(); -} - -if (!is_array($config['gateways']['gateway_group'])) { - $config['gateways']['gateway_group'] = array(); -} - -$a_gateway_groups = &$config['gateways']['gateway_group']; -$a_gateways = &$config['gateways']['gateway_item']; - -if ($_POST) { - $pconfig = $_POST; - - if ($_POST['apply']) { +if ($_SERVER['REQUEST_METHOD'] === 'GET') { +} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (isset($_POST['act']) && $_POST['act'] == "del" ) { + if (!empty($a_gateway_groups[$_POST['id']])) { + foreach ($config['filter']['rule'] as $idx => $rule) { + if ($rule['gateway'] == $a_gateway_groups[$_POST['id']]['name']) { + unset($config['filter']['rule'][$idx]['gateway']); + } + } + unset($a_gateway_groups[$_POST['id']]); + write_config(); + mark_subsystem_dirty('staticroutes'); + header("Location: system_gateway_groups.php"); + exit; + } + } elseif (isset($_POST['apply'])) { $retval = 0; - $retval = system_routing_configure(); configd_run('dyndns reload'); @@ -94,7 +95,6 @@ if ($_POST) { /* reconfigure our gateway monitor */ setup_gateways_monitor(); - $savemsg = get_std_save_message(); if ($retval == 0) { clear_subsystem_dirty('staticroutes'); } @@ -106,27 +106,15 @@ if ($_POST) { clear_subsystem_dirty($gw_subsystem); } } - } -} - -if ($_GET['act'] == "del") { - if ($a_gateway_groups[$_GET['id']]) { - foreach ($config['filter']['rule'] as $idx => $rule) { - if ($rule['gateway'] == $a_gateway_groups[$_GET['id']]['name']) { - unset($config['filter']['rule'][$idx]['gateway']); - } - } - unset($a_gateway_groups[$_GET['id']]); - write_config(); - mark_subsystem_dirty('staticroutes'); header("Location: system_gateway_groups.php"); exit; } } + $pgtitle = array(gettext('System'), gettext('Gateways'), gettext('Groups')); $shortcut_section = "gateway-groups"; - +legacy_html_escape_form_data($a_gateway_groups); include("head.inc"); $main_buttons = array( @@ -134,105 +122,104 @@ $main_buttons = array( ); ?> - + - - -
-
-
- - -
- "));?>

- - -
- -
- -
- -
- - -
- - - - - - - - - - - - +
+
+")); + } ?> -
- - - - - - - - - -
- -
- - - \n"; - } - ?> - - \n"; - } - ?> - -   - - - - - - - - - - -
')" class="btn btn-default btn-xs">
-
-
-

-
- -
-
-
-
-
-
- - +
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ +
+
+
+
+ + +