--- snmpUtils.pm.orig Wed Jun 16 03:28:00 1999 +++ snmpUtils.pm Fri Oct 29 23:09:15 1999 @@ -18,6 +18,8 @@ my($err) = ''; +my(%snmpdeadlist); + # this funky wrapper is because SNMP_Session throws exceptions with # warn(), which we need to catch, instead of letting them run # roughshod over Cricket's output. @@ -51,7 +53,17 @@ } sub get { - _do(\&snmpget, @_); + my ( @x, $start ); + $start = time; + Debug("snmpUtils::get: $_[0]\n"); + if ( !defined( $snmpdeadlist{$_[0]} ) ) { + @x = _do(\&snmpget, @_); + if ( !defined( $x[0] ) && time >= ( $start + 5 )) { + Debug( "snmpUtils::get: snmpdeadlist $_[0]\n" ); + $snmpdeadlist{$_[0]} = time; + } + } + return @x; } sub getnext { @@ -59,7 +71,17 @@ } sub walk { - _do(\&snmpwalk, @_); + my ( @x, $start ); + $start = time; + Debug("snmpUtils::walk: $_[0]\n"); + if ( !defined( $snmpdeadlist{$_[0]} ) ) { + @x = _do(\&snmpwalk, @_); + if ( !defined( @x ) && time >= ( $start + 5 )) { + Debug( "snmpUtils::walk: snmpdeadlist $_[0]\n" ); + $snmpdeadlist{$_[0]} = time; + } + } + return @x; } sub trap2 {