diff --git a/lib/App/Netdisco/Transport/SNMP.pm b/lib/App/Netdisco/Transport/SNMP.pm index f342155b..1f664e09 100644 --- a/lib/App/Netdisco/Transport/SNMP.pm +++ b/lib/App/Netdisco/Transport/SNMP.pm @@ -58,8 +58,12 @@ Returns C if the connection fails. sub reader_for { my ($class, $ip, $useclass) = @_; my $device = get_device($ip) or return undef; + return undef if $device->in_storage + and $device->vendor and $device->vendor eq 'netdisco'; + my $readers = $class->instance->readers or return undef; return $readers->{$device->ip} if exists $readers->{$device->ip}; + debug sprintf 'snmp reader cache warm: [%s]', $device->ip; return ($readers->{$device->ip} = _snmp_connect_generic('read', $device, $useclass)); @@ -104,8 +108,12 @@ Returns C if the connection fails. sub writer_for { my ($class, $ip, $useclass) = @_; my $device = get_device($ip) or return undef; + return undef if $device->in_storage + and $device->vendor and $device->vendor eq 'netdisco'; + my $writers = $class->instance->writers or return undef; return $writers->{$device->ip} if exists $writers->{$device->ip}; + debug sprintf 'snmp writer cache warm: [%s]', $device->ip; return ($writers->{$device->ip} = _snmp_connect_generic('write', $device, $useclass));