Skip to content

Commit

Permalink
Revert "(legacy) remove cache stuff from find_interface_subnetv6"
Browse files Browse the repository at this point in the history
This reverts commit 7b1f2d9.
  • Loading branch information
fichtner committed Nov 25, 2015
1 parent 87709de commit 84854b1
Showing 1 changed file with 28 additions and 8 deletions.
36 changes: 28 additions & 8 deletions src/etc/inc/interfaces.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2839,6 +2839,7 @@ function interface_vlan_adapt_mtu($vlanifs, $mtu) {
function interface_configure($interface = 'wan', $reloadall = false, $linkupevent = false)
{
global $config;
global $interface_snv6_arr_cache;

$wancfg = $config['interfaces'][$interface];

Expand Down Expand Up @@ -2953,6 +2954,9 @@ function interface_configure($interface = 'wan', $reloadall = false, $linkupeven
legacy_interface_flags($realhwif, interface_override_flags());
}

/* invalidate interface/ip/sn cache */
unset($interface_snv6_arr_cache[$realif]);

$tunnelif = substr($realif, 0, 3);
switch ($wancfg['ipaddr']) {
case 'dhcp':
Expand Down Expand Up @@ -3151,6 +3155,7 @@ function interface_track6_configure($interface = 'lan', $wancfg, $linkupevent =
function interface_track6_6rd_configure($interface = 'lan', $lancfg)
{
global $config;
global $interface_snv6_arr_cache;

if (!is_array($lancfg))
return;
Expand Down Expand Up @@ -3200,6 +3205,7 @@ function interface_track6_6rd_configure($interface = 'lan', $lancfg)
$oip = find_interface_ipv6($lanif);
if (is_ipaddrv6($oip))
mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
unset($interface_snv6_arr_cache[$lanif]);
log_error("rd6 {$interface} with ipv6 address {$rd6lan} based on {$lancfg['track6-interface']} ipv4 {$ip4address}");
mwexec("/sbin/ifconfig {$lanif} inet6 {$rd6lan} prefixlen 64");

Expand All @@ -3209,6 +3215,7 @@ function interface_track6_6rd_configure($interface = 'lan', $lancfg)
function interface_track6_6to4_configure($interface = 'lan', $lancfg)
{
global $config;
global $interface_snv6_arr_cache;

if (!is_array($lancfg))
return;
Expand Down Expand Up @@ -3254,6 +3261,7 @@ function interface_track6_6to4_configure($interface = 'lan', $lancfg)
$oip = find_interface_ipv6($lanif);
if (is_ipaddrv6($oip))
mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
unset($interface_snv6_arr_cache[$lanif]);
log_error("sixto4 {$interface} with ipv6 address {$sixto4lan} based on {$lancfg['track6-interface']} ipv4 {$ip4address}");
mwexec("/sbin/ifconfig {$lanif} inet6 {$sixto4lan} prefixlen 64");

Expand Down Expand Up @@ -4545,15 +4553,27 @@ function find_interface_subnet($interface) {
return null;
}

function find_interface_subnetv6($interface) {
$interface = trim($interface);
if (does_interface_exist($interface)) {
$ifinfo = pfSense_get_interface_addresses($interface);
if (isset($ifinfo['subnetbits6'])) {
return $ifinfo['subnetbits6'];
}
function find_interface_subnetv6($interface, $flush = false) {
global $interface_snv6_arr_cache;

if (!isset($interface_snv6_arr_cache) || !is_array($interface_snv6_arr_cache)) {
$interface_snv6_arr_cache = array();
}

$interface = str_replace("\n", "", $interface);
if (does_interface_exist($interface) == false)
return;

if (!isset($interface_snv6_arr_cache[$interface]['subnetbits6']) || $flush) {
$ifinfo = pfSense_get_interface_addresses($interface);
if (isset($ifinfo['subnetbits6'])) {
$interface_snv6_arr_cache[$interface] = $ifinfo['subnetbits6'];
} else {
return null ;
}
return null;
}

return $interface_snv6_arr_cache[$interface];
}

function ip_in_interface_alias_subnet($interface, $ipalias) {
Expand Down

0 comments on commit 84854b1

Please sign in to comment.