From 9d48c4a025f7b0ce61f8c24025b948df53c26f44 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 9 Apr 2018 23:05:17 +0100 Subject: [PATCH] work for shortening or lengthening ports --- lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm b/lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm index ed5c3818..5e15a56f 100644 --- a/lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm +++ b/lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm @@ -259,7 +259,8 @@ sub store_neighbors { ip => $peer_device->ip, port => [ {'=', $remote_port}, - {'-ilike', normalize_port($remote_port)}, + {'-ilike', long_port($remote_port)}, + {'-ilike', short_port($remote_port)}, {'-ilike', ('%'.quotemeta($remote_port))}, ], }, { rows => 1 })->single(); @@ -308,7 +309,13 @@ sub store_neighbors { return @to_discover; } -sub normalize_port { +sub long_port { + my $port = shift or return ''; + $port =~ s/^([a-z]{2})([^a-z].+)$/$1%$2/i; + return $port; +} + +sub short_port { my $port = shift or return ''; my ($start, $end) = ('', ''); if ($port =~ m/^([a-z]{2})/i) { $start = $1 }