From 0d550d9bce2c955847a6933de55ccad233c5ba7a Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Mon, 20 Dec 2010 10:31:14 -0800 Subject: [PATCH] Unconditionally cache interface lookup results --- Shorewall/Perl/Shorewall/Zones.pm | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Shorewall/Perl/Shorewall/Zones.pm b/Shorewall/Perl/Shorewall/Zones.pm index bad745834..ed9f040f8 100644 --- a/Shorewall/Perl/Shorewall/Zones.pm +++ b/Shorewall/Perl/Shorewall/Zones.pm @@ -1187,7 +1187,7 @@ sub map_physical( $$ ) { # If the passed name matches a wildcard and 'cache' is true, an entry for the name is added in # %interfaces. # -sub known_interface($;$) +sub known_interface($) { my ( $interface, $cache ) = @_; my $interfaceref = $interfaces{$interface}; @@ -1202,17 +1202,13 @@ sub known_interface($;$) if ( $i ne $root && $interface ne $root && substr( $interface, 0, length $root ) eq $root ) { my $physical = map_physical( $interface, $interfaceref ); - my $copyref = { options => $interfaceref->{options}, - bridge => $interfaceref->{bridge} , - name => $i , - number => $interfaceref->{number} , - physical => $physical , - base => chain_base( $physical ) , - }; - - $interfaces{$interface} = $copyref if $cache; - - return $copyref; + return $interfaces{$interface} = { options => $interfaceref->{options}, + bridge => $interfaceref->{bridge} , + name => $i , + number => $interfaceref->{number} , + physical => $physical , + base => chain_base( $physical ) , + }; } }