diff --git a/lib/SNMP/Info/Layer3/H3C.pm b/lib/SNMP/Info/Layer3/H3C.pm index 65c04f4a..8eb4a223 100644 --- a/lib/SNMP/Info/Layer3/H3C.pm +++ b/lib/SNMP/Info/Layer3/H3C.pm @@ -84,14 +84,18 @@ sub vendor { sub model { my $h3c = shift; + my $id = $h3c->id() || ''; + my $descr = $h3c->description() || ''; + + my $entclass = $h3c->entPhysicalClass(2) || {}; + my $entity = $entclass->{2} || ''; + my $entname = $h3c->entPhysicalName(2) || {}; - my $descr = $h3c->description(); if ($descr =~ /^.*\n(.*)\n/) { return $1; - } elsif ($h3c->entPhysicalClass(2)->{2} =~ /^(3|chassis)$/) { - return $h3c->entPhysicalName(2)->{2}; + } elsif ($entity =~ /^(3|chassis)$/) { + return $entname->{2}; } else { - my $id = $h3c->id(); return &SNMP::translateObj($id) || $id; } }