#460 always return $info instance to allow error() inspection
This commit is contained in:
@@ -73,10 +73,11 @@ list any missing functionality (such as neighbor discovery tables).
|
|||||||
# AuthPass => 'authp4ss',
|
# AuthPass => 'authp4ss',
|
||||||
# PrivProto => 'DES', # DES|AES
|
# PrivProto => 'DES', # DES|AES
|
||||||
# PrivPass => 'pr1vp4ss',
|
# PrivPass => 'pr1vp4ss',
|
||||||
) or die "Can't connect to device.\n";
|
);
|
||||||
|
|
||||||
my $err = $info->error();
|
my $err = $info->error();
|
||||||
die "SNMP Community or Version probably wrong connecting to device. $err\n" if defined $err;
|
die $err if defined $err;
|
||||||
|
# usually a wrong DestHost or Community or Version if you have trouble here
|
||||||
|
|
||||||
my $name = $info->name();
|
my $name = $info->name();
|
||||||
my $class = $info->class();
|
my $class = $info->class();
|
||||||
@@ -1455,16 +1456,16 @@ sub new {
|
|||||||
|
|
||||||
# No session object created
|
# No session object created
|
||||||
unless ( defined $sess ) {
|
unless ( defined $sess ) {
|
||||||
$new_obj->error_throw("SNMP::Info::new() Failed to Create Session. ");
|
$new_obj->error_throw("SNMP::Info::new() Net-SNMP session creation failed completely.");
|
||||||
return;
|
return $new_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Session object created but SNMP connection failed.
|
# Session object created but SNMP connection failed.
|
||||||
my $sess_err = $sess->{ErrorStr} || '';
|
if ($sess->{ErrorStr}) {
|
||||||
if ($sess_err) {
|
my $sess_err = $sess->{ErrorStr} || 'no specific error';
|
||||||
$new_obj->error_throw(
|
$new_obj->error_throw(
|
||||||
"SNMP::Info::new() Net-SNMP session creation failed. $sess_err");
|
"SNMP::Info::new() Net-SNMP session creation failed: $sess_err");
|
||||||
return;
|
return $new_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Save Args for later
|
# Save Args for later
|
||||||
@@ -2332,8 +2333,8 @@ sub specify {
|
|||||||
my $device_type = $self->device_type();
|
my $device_type = $self->device_type();
|
||||||
unless ( defined $device_type ) {
|
unless ( defined $device_type ) {
|
||||||
$self->error_throw(
|
$self->error_throw(
|
||||||
"SNMP::Info::specify() - Could not get info from device");
|
"SNMP::Info::specify() - fatal error: connect failed or missing sysServices and/or sysDescr");
|
||||||
return;
|
return $self;
|
||||||
}
|
}
|
||||||
return $self if $device_type eq 'SNMP::Info';
|
return $self if $device_type eq 'SNMP::Info';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user