From 4f8534169a393ca304a26043e2b1bd6cc715605a Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 9 May 2018 22:42:59 -0400 Subject: [PATCH] Use NetAddr::IP::Lite to determine if EIGRP peer is a valid IP --- lib/SNMP/Info/Layer3/Cisco.pm | 8 ++++---- xt/lib/Test/SNMP/Info/Layer3/Cisco.pm | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/SNMP/Info/Layer3/Cisco.pm b/lib/SNMP/Info/Layer3/Cisco.pm index 06bb2e08..3059a2d6 100644 --- a/lib/SNMP/Info/Layer3/Cisco.pm +++ b/lib/SNMP/Info/Layer3/Cisco.pm @@ -160,10 +160,10 @@ sub eigrp_peers { my $peer = $peers->{$idx}; next unless $peer; - if ( ( $type eq 'ipv4' or $type eq 'ipv6' ) - and $peer =~ /^(?:\w|\.|\:)+$/x ) - { - $eigrp_peers{$idx} = $peer; + my $ip = NetAddr::IP::Lite->new($peer); + + if ($ip) { + $eigrp_peers{$idx} = $ip->addr; } elsif ( $type eq 'ipv4' ) { $eigrp_peers{$idx} = SNMP::Info::munge_ip($peer); diff --git a/xt/lib/Test/SNMP/Info/Layer3/Cisco.pm b/xt/lib/Test/SNMP/Info/Layer3/Cisco.pm index d11421f8..9b3ee2d9 100644 --- a/xt/lib/Test/SNMP/Info/Layer3/Cisco.pm +++ b/xt/lib/Test/SNMP/Info/Layer3/Cisco.pm @@ -122,8 +122,8 @@ sub eigrp_peers : Tests(3) { my $expected = { '0.5.0' => '1.2.3.4', '0.5.1' => '10.20.30.40', - '65536.10.2' => '::1.2.3.4', - '65536.10.3' => 'fe80::2d0:b7ff:fe21:c6c0' + '65536.10.2' => '0:0:0:0:0:0:102:304', + '65536.10.3' => 'fe80:0:0:0:2d0:b7ff:fe21:c6c0' }; cmp_deeply($test->{info}->eigrp_peers(),