diff options
-rw-r--r-- | etc/inc/gwlb.inc | 18 | ||||
-rwxr-xr-x | usr/local/www/firewall_rules_edit.php | 30 |
2 files changed, 22 insertions, 26 deletions
diff --git a/etc/inc/gwlb.inc b/etc/inc/gwlb.inc index a436439..4e90ed7 100644 --- a/etc/inc/gwlb.inc +++ b/etc/inc/gwlb.inc @@ -787,15 +787,17 @@ function return_gateway_groups_array() { else if (!empty($int)) $gatewayip = get_interface_gateway($gateway['friendlyiface']); - if (!empty($int) && is_ipaddr($gatewayip)) { - $groupmember = array(); - $groupmember['int'] = $int; - $groupmember['gwip'] = $gatewayip; - $groupmember['weight'] = isset($gateway['weight']) ? $gateway['weight'] : 1; - if (is_array($gwvip_arr[$group['name']])&& !empty($gwvip_arr[$group['name']][$member])) - $groupmember['vip'] = $gwvip_arr[$group['name']][$member]; + if (!empty($int)) { $gateway_groups_array[$group['name']]['ipprotocol'] = $gateway['ipprotocol']; - $gateway_groups_array[$group['name']][] = $groupmember; + if (is_ipaddr($gatewayip)) { + $groupmember = array(); + $groupmember['int'] = $int; + $groupmember['gwip'] = $gatewayip; + $groupmember['weight'] = isset($gateway['weight']) ? $gateway['weight'] : 1; + if (is_array($gwvip_arr[$group['name']])&& !empty($gwvip_arr[$group['name']][$member])) + $groupmember['vip'] = $gwvip_arr[$group['name']][$member]; + $gateway_groups_array[$group['name']][] = $groupmember; + } } } } diff --git a/usr/local/www/firewall_rules_edit.php b/usr/local/www/firewall_rules_edit.php index 033770b..24788d9 100755 --- a/usr/local/www/firewall_rules_edit.php +++ b/usr/local/www/firewall_rules_edit.php @@ -202,6 +202,7 @@ read_dummynet_config(); /* XXX: */ $dnqlist =& get_unique_dnqueue_list(); read_layer7_config(); $l7clist =& get_l7_unique_list(); +$a_gatewaygroups = return_gateway_groups_array(); if ($_POST) { unset($input_errors); @@ -213,7 +214,6 @@ if ($_POST) { } if (($_POST['ipprotocol'] <> "") && ($_POST['gateway'] <> "")) { - $a_gatewaygroups = return_gateway_groups_array(); if(is_array($config['gateways']['gateway_group'])) { foreach($config['gateways']['gateway_group'] as $gw_group) { if($gw_group['name'] == $_POST['gateway']) { @@ -1450,26 +1450,20 @@ $i--): ?> } else { $selected = ""; } - echo "<option value=\"{$gwname}\" {$selected}>{$gw['name']} - {$gw['gateway']}</option>\n"; + $gateway_addr_str = empty($gw['gateway']) ? "" : " - " . $gw[gateway]; + echo "<option value=\"{$gwname}\" {$selected}>{$gw['name']}{$gateway_addr_str}</option>\n"; } /* add gateway groups to the list */ - if (is_array($config['gateways']['gateway_group'])) { - foreach($config['gateways']['gateway_group'] as $gw_group) { - $af = explode("|", $gw_group['item'][0]); - if(($pconfig['ipprotocol'] == "inet46")) - continue; - if(($pconfig['ipprotocol'] == "inet6") && !is_ipaddrv6(lookup_gateway_ip_by_name($af[0]))) - continue; - if(($pconfig['ipprotocol'] == "inet") && !is_ipaddrv4(lookup_gateway_ip_by_name($af[0]))) - continue; - if($gw_group['name'] == "") - continue; - if($pconfig['gateway'] == $gw_group['name']) { - $selected = " selected=\"selected\""; - } else { - $selected = ""; + if (is_array($a_gatewaygroups)) { + foreach($a_gatewaygroups as $gwg_name => $gwg_data) { + if((empty($pconfig['ipprotocol'])) || ($pconfig['ipprotocol'] == $gwg_data['ipprotocol'])) { + if($pconfig['gateway'] == $gwg_name) { + $selected = " selected=\"selected\""; + } else { + $selected = ""; + } + echo "<option value=\"{$gwg_name}\" $selected>{$gwg_name}</option>\n"; } - echo "<option value=\"{$gw_group['name']}\" $selected>{$gw_group['name']}</option>\n"; } } ?> |