Modify get_configured_ip_aliases_list to optionally return the full vip entry and use this information to get the subnet and not just the IP in filter_get_direct_networks_list.

This commit is contained in:
Erik Fonnesbeck 2012-04-11 23:07:42 -06:00
parent e9eae06092
commit a119ecf819
2 changed files with 12 additions and 9 deletions

View File

@ -775,13 +775,13 @@ function filter_get_direct_networks_list() {
$networks_arr[] = $subnet;
}
}
foreach(get_configured_ip_aliases_list() as $vip => $vipif) {
$vip_split = explode('/', $vip);
if(!empty($vip_split[1]) && is_subnet($vip) && !(is_subnetv4($vip) && $vip_split[1] == 32) && !(is_subnetv6($vip) && $vip_split[1] == 128)) {
if(is_subnetv4($vip))
$networks_arr[] = gen_subnet($vip_split[0], $vip_split[1]) . "/{$vip_split[1]}";
else if(is_subnetv6($vip))
$networks_arr[] = gen_subnetv6($vip_split[0], $vip_split[1]) . "/{$vip_split[1]}";
foreach(get_configured_ip_aliases_list(true) as $vip) {
$subnet = "{$vip['subnet']}/{$vip['subnet_bits']}";
if(is_subnet($subnet) && !(is_subnetv4($subnet) && $vip['subnet_bits'] == 32) && !(is_subnetv6($subnet) && $vip['subnet_bits'] == 128)) {
if(is_subnetv4($subnet))
$networks_arr[] = gen_subnet($vip['subnet'], $vip['subnet_bits']) . "/{$vip['subnet_bits']}";
else if(is_subnetv6($subnet))
$networks_arr[] = gen_subnetv6($vip['subnet'], $vip['subnet_bits']) . "/{$vip['subnet_bits']}";
}
}
foreach(get_staticroutes(true) as $netent) {

View File

@ -647,7 +647,7 @@ function get_configured_carp_interface_list() {
}
/* return the configured IP aliases list */
function get_configured_ip_aliases_list() {
function get_configured_ip_aliases_list($returnfullentry = false) {
global $config;
$alias_list=array();
@ -656,7 +656,10 @@ function get_configured_ip_aliases_list() {
$viparr = &$config['virtualip']['vip'];
foreach ($viparr as $vip) {
if ($vip['mode']=="ipalias") {
$alias_list[$vip['subnet']] = $vip['interface'];
if ($returnfullentry)
$alias_list[$vip['subnet']] = $vip;
else
$alias_list[$vip['subnet']] = $vip['interface'];
}
}
}