Re: tkined & tnm source code question

Juergen Schoenwaelder (schoenw@cs.utwente.nl)
Thu, 7 Nov 1996 16:14:26 +0100

"Alexandre CHAUVIN-HAMEAU" <ach@sysicom.fr> said:

Alexandre> question : if the community is set for a particular
Alexandre> host, the first statement configure $s, but the
Alexandre> community is reset to $snmp_community after, why ?

It is a bug.

Alexandre> I've try to put these lines after the switch
Alexandre> statement, and it-is working better (I think).

Better, but not correct for the USEC case. The patch below should fix
this bug.
Juergen

*** tkined/apps/library.tcl.orig Thu Sep 12 22:07:09 1996
--- tkined/apps/library.tcl Thu Nov 7 15:54:23 1996
***************
*** 931,937 ****
proc SnmpOpen { id ip } {

global snmp_community snmp_timeout snmp_retries snmp_window snmp_delay
! global snmp_port snmp_protocol snmp_context
global default

set alias [ined attribute $id "SNMP:Alias"]
--- 931,937 ----
proc SnmpOpen { id ip } {

global snmp_community snmp_timeout snmp_retries snmp_window snmp_delay
! global snmp_port snmp_protocol snmp_user snmp_context
global default

set alias [ined attribute $id "SNMP:Alias"]
***************
*** 962,995 ****
}
}

if {[info exists default(protocol.$ip)]} {
set protocol $default(protocol.$ip)
} else {
set protocol $snmp_protocol
}
-
- set s [snmp session -address $ip -port $snmp_port \
- -timeout $snmp_timeout -retries $snmp_retries \
- -window $snmp_window -delay $snmp_delay \
- -version $protocol]
-
if {[info exists default(community.$ip)]} {
! $s configure -community $default(community.$ip)
}
! if {[info exists default(port.$ip)]} {
! $s configure -port $default(port.$ip)
}

switch $protocol {
SNMPv1 {
! $s configure -community $snmp_community -version SNMPv1
}
SNMPv2c {
! $s configure -community $snmp_community -version SNMPv2c
}
SNMPv2u {
! $s configure -user $snmp_user -context $snmp_context \
! -version SNMPv2u
}
default {
ined acknowledge "Unsuppoted version \"$protocol\" for $id \[$ip\]"
--- 962,1001 ----
}
}

+ set s [snmp session -address $ip -port $snmp_port \
+ -timeout $snmp_timeout -retries $snmp_retries \
+ -window $snmp_window -delay $snmp_delay]
+
if {[info exists default(protocol.$ip)]} {
set protocol $default(protocol.$ip)
} else {
set protocol $snmp_protocol
}
if {[info exists default(community.$ip)]} {
! set community $default(community.$ip)
! } else {
! set community $snmp_community
}
! if {[info exists default(user.$ip)]} {
! set user $default(user.$ip)
! } else {
! set user $snmp_user
! }
! if {[info exists default(context.$ip)]} {
! set context $default(context.$ip)
! } else {
! set context $snmp_context
}

switch $protocol {
SNMPv1 {
! $s configure -community $community -version SNMPv1
}
SNMPv2c {
! $s configure -community $community -version SNMPv2c
}
SNMPv2u {
! $s configure -user $user -context $context -version SNMPv2u
}
default {
ined acknowledge "Unsuppoted version \"$protocol\" for $id \[$ip\]"
***************
*** 997,1007 ****
--- 1003,1022 ----
}
}

+ if {[info exists default(port.$ip)]} {
+ $s configure -port $default(port.$ip)
+ }
if {[info exists default(timeout.$ip)]} {
$s configure -timeout $default(timeout.$ip)
}
if {[info exists default(retries.$ip)]} {
$s configure -retries $default(retries.$ip)
+ }
+ if {[info exists default(window.$ip)]} {
+ $s configure -window $default(window.$ip)
+ }
+ if {[info exists default(delay.$ip)]} {
+ $s configure -delay $default(delay.$ip)
}

return $s