diff options
author | Erik Fonnesbeck <efonnes@gmail.com> | 2012-04-11 23:07:42 -0600 |
---|---|---|
committer | Erik Fonnesbeck <efonnes@gmail.com> | 2012-04-11 23:07:42 -0600 |
commit | a119ecf819f8d02f6be7b5b8ee883ca516a1256d (patch) | |
tree | 4a1edc514d0230f1ea1a8a28dad4d8e8693ba6ed | |
parent | e9eae06092747e8c383fc6e441b4bd44a1374acc (diff) | |
download | pfsense-a119ecf819f8d02f6be7b5b8ee883ca516a1256d.zip pfsense-a119ecf819f8d02f6be7b5b8ee883ca516a1256d.tar.gz |
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.
-rw-r--r-- | etc/inc/filter.inc | 14 | ||||
-rw-r--r-- | etc/inc/util.inc | 7 |
2 files changed, 12 insertions, 9 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index afa864d..25008ff 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -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) { diff --git a/etc/inc/util.inc b/etc/inc/util.inc index c176e10..f5d0a39 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -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']; } } } |