rendered paste bodyIndex: netsnmp/client_intf.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/python/netsnmp/client_intf.c,v
retrieving revision 1.9
diff -u -p -r1.9 client_intf.c
--- netsnmp/client_intf.c 29 Sep 2006 20:28:12 -0000 1.9
+++ netsnmp/client_intf.c 27 Oct 2006 14:31:25 -0000
@@ -1934,13 +1934,23 @@ netsnmp_walk(PyObject *self, PyObject *a
if (!response || !response->variables ||
(response->variables->name_length < oid_arr_len) ||
(memcmp(oid_arr, response->variables->name,
- oid_arr_len * sizeof(oid)))) {
+ oid_arr_len * sizeof(oid))) ||
+ status != STAT_SUCCESS ||
+ response->errstat != SNMP_ERR_NOERROR) {
notdone = 0;
} else {
for(vars = (response ? response->variables : NULL), varlist_ind = 0;
vars && (varlist_ind <= varlist_len);
vars = vars->next_variable, varlist_ind++) {
+ if ((vars->type == SNMP_ENDOFMIBVIEW) ||
+ (vars->type == SNMP_NOSUCHOBJECT) ||
+ (vars->type == SNMP_NOSUCHINSTANCE)) {
+ fprintf(stderr, "here\n");
+ notdone = 0;
+ break;
+ }
+
varbind = py_netsnmp_construct_varbind();
if (PyObject_HasAttrString(varbind, "tag")) {