From 54676ca0ea452ed9365f081ddf618f09c26e32d4 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 13 Jul 2015 22:38:14 +0100 Subject: [PATCH] [#234] Cisco voice vlan conflicts with same number normal vlan on DB INSERT --- Netdisco/Changes | 6 ++++++ Netdisco/lib/App/Netdisco/Core/Discover.pm | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index d75dfaf3..8aeecbcd 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,3 +1,9 @@ +2.032006 - + + [BUG FIXES] + + * [#234] Cisco voice vlan conflicts with same number normal vlan on DB INSERT + 2.032005 - 2015-05-18 [BUG FIXES] diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index 8956e45d..74c7f463 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -428,7 +428,8 @@ sub store_vlans { my $interfaces = $snmp->interfaces; # build device port vlans suitable for DBIC - my @portvlans; + my @portvlans = (); + my %port_vseen = (); foreach my $entry (keys %$i_vlan_membership) { my $port = $interfaces->{$entry}; next unless defined $port; @@ -436,6 +437,8 @@ sub store_vlans { my $type = $i_vlan_type->{$entry}; foreach my $vlan (@{ $i_vlan_membership->{$entry} }) { + next if ++$port_vseen{$vlan} > 1; + my $native = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "t" : "f"; push @portvlans, { port => $port,