Merge pull request #984 from phil-davis/master

Return GWG IP protocol (version) when no gateway IP
This commit is contained in:
Renato Botelho 2014-03-04 10:03:11 -03:00
commit ebe2b407b3
2 changed files with 22 additions and 26 deletions

View File

@ -830,15 +830,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;
}
}
}
}

View File

@ -205,6 +205,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);
@ -216,7 +217,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']) {
@ -1468,26 +1468,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";
}
}
?>