From: <no...@so...> - 2001-01-29 21:23:33
|
Bug #130410, was updated on 2001-Jan-29 11:04 Here is a current snapshot of the bug. Project: net-snmp Category: agent Status: Closed Resolution: Fixed Bug Group: None Priority: 5 Submitted by: nobody Assigned to : hardaker Summary: SET request not issued by Master agent Details: Every time a SET request is issued by the SNMP manager for a particular object instance, the master agent first sends a GET request for this object instance to the SMUX subagent to make sure the object instance exists in the subagent. If the master agent receives "NoSuchName" from the subagent in the GET response, it does not proceed with the original SET request. As I understand, this is not how it is supposed to work. The SET request should be issued regardless. Below are snmpd traces: A. Sending a SET request for a non-existing object instance: smux: [smux_snmp_process] oid from build: enterprises.161.3.6.11.2.2.2.1.6.1 smux: [smux_snmp_process] Sent 160 request to peer; 42 bytes smux: [smux_snmp_process] Peeked at 36 bytes smux: [smux_snmp_process] Received 36 bytes smux: [smux_parse] Message type 2, reqid 387, errstat 2, errindex 1 smux: [smux_snmp_process] oid from build: enterprises.161.3.6.11.2.2.2.1.6.1 smux: [smux_snmp_process] Sent 160 request to peer; 42 bytes smux: [smux_snmp_process] Peeked at 36 bytes smux: [smux_snmp_process] Received 36 bytes smux: [smux_parse] Message type 2, reqid 388, errstat 2, errindex 1 B. Sending a SET request for an existing object instance: smux: [smux_snmp_process] oid from build: enterprises.161.3.6.11.2.2.2.1.7.10 smux: [smux_snmp_process] Sent 160 request to peer; 42 bytes smux: [smux_snmp_process] Peeked at 37 bytes smux: [smux_snmp_process] Received 37 bytes smux: [smux_parse] Message type 2, reqid 389, errstat 0, errindex 0 smux: [smux_parse_var] before any processing: enterprises.161.3.6.11.2.2.2.1.7.10 smux: [smux_parse_var] returning oid : enterprises.161.3.6.11.2.2.2.1.7.10 smux: [smux_parse_var] Asn coded len of var 1, type 2 smux: [var_smux_write] entering var_smux_write smux: [var_smux_write] entering RESERVE1 smux: [var_smux_write] Peeked at 37 bytes smux: [var_smux_write] Received 37 bytes smux: [var_smux_write] entering var_smux_write smux: [var_smux_write] entering RESERVE2 smux: [var_smux_write] entering var_smux_write smux: [var_smux_write] entering var_smux_write smux: [var_smux_write] entering FREE - sending Commit Follow-Ups: Date: 2001-Jan-29 13:23 By: hardaker Comment: The following patch should (hopefully0 fix the problem (a get will still be sent, as there isn't currently a way around that, but at least the set will still be performed): Index: smux.c =================================================================== RCS file: /cvsroot/net-snmp/net-snmp/agent/mibgroup/smux/smux.c,v retrieving revision 1.49 diff -u -r1.49 smux.c --- smux.c 2000/12/01 22:19:16 1.49 +++ smux.c 2001/01/29 21:22:27 @@ -266,8 +266,7 @@ u_char *valptr, val_type; smux_reg *rptr; - *write_method = NULL; - + *write_method = var_smux_write; /* search the active registration list */ for (rptr = ActiveRegs; rptr; rptr = rptr->sr_next) { if (!compare_tree(vp->name, vp->namelen, rptr->sr_name, @@ -279,7 +278,6 @@ else if (exact && (*length < rptr->sr_name_len)) return NULL; - *write_method = var_smux_write; valptr = smux_snmp_process(exact, name, length, var_len, &val_type, rptr->sr_fd); ------------------------------------------------------- For detailed info, follow this link: http://sourceforge.net/bugs/?func=detailbug&bug_id=130410&group_id=12694 |