Tomsk. Fix Dlink model.
Something fail -(. Undefined OID for DLink return NOSUCHOBJECT instead undef..
This commit is contained in:
		| @@ -32,6 +32,7 @@ use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use Data::Dumper; | ||||
|  | ||||
| @SNMP::Info::Layer3::DLink::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::DLink::EXPORT_OK = qw//; | ||||
| @@ -102,7 +103,25 @@ sub os { | ||||
|  | ||||
| sub os_ver { | ||||
|     my $obj = shift; | ||||
|     return $obj->fwver(); | ||||
|     my $os_ver = undef; | ||||
|     my $model = $obj->model(); | ||||
|     my $id = $obj->id(); | ||||
|  | ||||
| 	#Due to the zoo of MIB from DLink by 1210 series | ||||
| 	$os_ver = $obj->session()->get($id.'.1.3.0') if $model =~ /1210/; | ||||
|  | ||||
|     while (not defined $os_ver) { | ||||
|         $os_ver = $obj->dlink_fw(); | ||||
|         last if defined $os_ver; | ||||
|  | ||||
|         $os_ver = $obj->session()->get('enterprises.171.10.94.89.89.2.4.0'); | ||||
|         last; | ||||
|     } | ||||
|  | ||||
|     my $brom = $obj->brom(); | ||||
|     $os_ver .= ' bootrom:' . $brom if defined $brom; | ||||
|  | ||||
|     return $os_ver if defined $os_ver; | ||||
| } | ||||
|  | ||||
| sub serial { | ||||
| @@ -121,35 +140,41 @@ sub serial { | ||||
|     return $dlink->SUPER::serial(); | ||||
| } | ||||
|  | ||||
| sub fwver { | ||||
|     my $dlink=shift; | ||||
|     my $model = $dlink->model(); | ||||
|     my $id = $dlink->id(); | ||||
|     my $fw; | ||||
|     if ($model =~ /1210/) { | ||||
| 	#Due to the zoo of MIB from DLink by 1210 series | ||||
| 	$fw->{0} = $dlink->session()->get($id.'.1.3.0'); | ||||
|     } else { | ||||
| 	$fw = $dlink->dlink_fw(); | ||||
|     } | ||||
|     return $fw->{0} if ( defined $fw->{0} and $fw->{0} !~ /^\s*$/ and $fw->{0} !~ 'NOSUCHOBJECT'); | ||||
| sub brom { | ||||
|     my $obj = shift; | ||||
|     my $brom = undef; | ||||
|  | ||||
|     $brom = $obj->session()->get('enterprises.171.10.94.89.89.2.10.0'); | ||||
|  | ||||
|     return $brom if defined $brom; | ||||
| } | ||||
|  | ||||
| sub hwver { | ||||
|     my $dlink=shift; | ||||
|     my $id = $dlink->id(); | ||||
|     my $obj=shift; | ||||
|     my $id = $obj->id(); | ||||
|     my $model = &SNMP::translateObj($id); | ||||
|     my $hw; | ||||
|     if ($model =~ /1210/) { | ||||
| 	#Due to the zoo of MIB from DLink by 1210 series | ||||
| 	$hw->{0} = $dlink->session()->get($id.'.1.2.0'); | ||||
|     } else { | ||||
| 	$hw = $dlink->dlink_hw(); | ||||
|     } | ||||
|     return $hw->{0} if ( defined $hw->{0} and $hw->{0} !~ /^\s*$/ and $hw->{0} !~ 'NOSUCHOBJECT'); | ||||
|     my $hw = undef; | ||||
|  | ||||
|     $hw = $dlink->session()->get('rmon.19.3.0'); | ||||
|     return $hw if defined($hw); | ||||
| 	#Due to the zoo of MIB from DLink by 1210 series | ||||
| 	$hw = $obj->session()->get($id.'.1.2.0') if $model =~ /1210/; | ||||
|     $hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT'; | ||||
|  | ||||
|     while(not defined $hw){ | ||||
|         $hw = $obj->dlink_hw() || undef; | ||||
|         $hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT'; | ||||
|         last if defined $hw; | ||||
|  | ||||
|         $hw = $obj->session()->get('rmon.19.3.0') || undef; | ||||
|         $hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT'; | ||||
|         last if defined $hw; | ||||
|  | ||||
|         $hw = $obj->session()->get('enterprises.171.10.94.89.89.2.10.0') || undef; | ||||
|         $hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT'; | ||||
|  | ||||
|         last; | ||||
|     } | ||||
|  | ||||
|     return $hw if defined $hw; | ||||
| } | ||||
|  | ||||
| sub stp_i_root_port { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user