From 02e6807e44b42e680d2d448a7e5165c69e95b6b0 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 11 Apr 2018 20:27:40 -0400 Subject: [PATCH] Prevent potential undefined warnings in i_speed_admin() of L2::C2900 --- lib/SNMP/Info/Layer2/C2900.pm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/SNMP/Info/Layer2/C2900.pm b/lib/SNMP/Info/Layer2/C2900.pm index dbc96568..dffaa04b 100644 --- a/lib/SNMP/Info/Layer2/C2900.pm +++ b/lib/SNMP/Info/Layer2/C2900.pm @@ -128,25 +128,24 @@ sub i_speed_admin { my $c2900 = shift; my $partial = shift; - my %i_speed_admin; - my $p_port = $c2900->p_port() || {}; my $interfaces = $c2900->interfaces($partial); my $c2900_p_index = $c2900->c2900_p_index() || {}; + my $c2900_p_admin = $c2900->c2900_p_speed_admin(); my %reverse_2900 = reverse %$c2900_p_index; - my $c2900_p_speed - = $c2900->c2900_p_speed_admin( $reverse_2900{$partial} ); - my %speeds = ( - 'autoDetect' => 'auto', - 's10000000' => '10 Mbps', - 's100000000' => '100 Mbps', - ); - - %i_speed_admin - = map { $c2900_p_index->{$_} => $speeds{ $c2900_p_speed->{$_} } } - keys %$c2900_p_index; + my %i_speed_admin; + foreach my $if ( keys %$interfaces ) { + my $port_2900 = $reverse_2900{$if}; + next unless defined $port_2900; + my $speed = $c2900_p_admin->{$port_2900}; + next unless defined $speed; + $speed = 'auto' if $speed eq 'autoDetect'; + $speed = '10 Mbps' if $speed eq 's10000000'; + $speed = '100 Mbps' if $speed eq 's100000000'; + $i_speed_admin{$if} = $speed; + } return \%i_speed_admin; }