From 8c8e4d1654ce8cf68164e597c03e9a8787514b38 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 | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/Shorewall/Perl/Shorewall/Zones.pm b/Shorewall/Perl/Shorewall/Zones.pm index ffe576e5e..ed9f040f8 100644 --- a/Shorewall/Perl/Shorewall/Zones.pm +++ b/Shorewall/Perl/Shorewall/Zones.pm @@ -1187,13 +1187,11 @@ 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}; - $cache = 1 unless defined $cache; - return $interfaceref if $interfaceref; fatal_error "Invalid interface ($interface)" if $interface =~ /\*/; @@ -1204,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 ) , + }; } }