Re: discovery fails with error

Juergen Schoenwaelder (schoenw@ibr.cs.tu-bs.de)
Thu, 12 Oct 1995 13:24:29 +0100

Hi!

rflens <rflens@xs4all.nl> said:

rflens> I just compiles scotty 2.0.1 and tkined 1.3.4 on a
rflens> HP/UX 9.?? machine. It compiles fine and starts. But when I do
rflens> a "discover network" on network 135.160.60 I get the following
rflens> stack trace :

rflens> sendto failed: Permission denied
rflens> while executing
rflens> "$s get sysObjectID.0 [list discover_snmp_callback $id "%S" "%E"]"

rflens> Does anyone know what this means and how to solve it?

I finally got Tkined/Scotty running on HPUX 9.05 and IRIX 5.3 but I am
not able to reproduce this error. I don't think that this error is
specific to these platforms. Perhaps some strange devices on the net
send ICMP messages that cause the sendto to fail. This would at least
explain why I can't reproduce the error here.

I would like to understand what is going on here before I put a catch
around the SNMP get request. So I ask those of you who can reproduce
this error to patch ip_discover.tcl (see diff below). If you get
`Oops' output for individual IP addresses, please let me know what
kind of device they are. It would also be helpful if you can reproduce
this bug with an IP address which is accessible over the Internet (and
not hidden behind a firewall). This would allow me to do some tests
myself. Thanks,

Juergen

*** scotty-2.0.1/tkined/ip_discover.tcl Mon Aug 28 15:45:53 1995
--- ip_discover.tcl Thu Oct 12 13:05:18 1995
***************
*** 361,367 ****
set ip $address($id)
if {[catch {snmp session -address $ip \
-retries $icmp_retries -timeout $icmp_timeout} s]} continue
! $s get sysObjectID.0 [list discover_snmp_callback $id "%S" "%E"]
update
}
snmp wait
--- 361,371 ----
set ip $address($id)
if {[catch {snmp session -address $ip \
-retries $icmp_retries -timeout $icmp_timeout} s]} continue
! if {[catch {
! $s get sysObjectID.0 [list discover_snmp_callback $id "%S" "%E"]
! } msg]} {
! writeln "Oops: $ip get sysObjectID.0: $msg"
! }
update
}
snmp wait