summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2005-06-23 21:58:35 +0000
committerelie <elie>2005-06-23 21:58:35 +0000
commit9be0648dfd2d20c7defc53eaa4cadf23030c23dd (patch)
tree557965779598973ee7ef14357608316cdb4cc478
parentf82033e7673a1faa8dd4e98eb322c3628fc426e7 (diff)
downloadpysnmp-9be0648dfd2d20c7defc53eaa4cadf23030c23dd.tar.gz
bugfix to getNextNode() logic for an inexact shorter OID search
-rw-r--r--pysnmp/smi/mibs/SNMPv2-SMI.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-SMI.py b/pysnmp/smi/mibs/SNMPv2-SMI.py
index 7b3af49..7421de1 100644
--- a/pysnmp/smi/mibs/SNMPv2-SMI.py
+++ b/pysnmp/smi/mibs/SNMPv2-SMI.py
@@ -317,7 +317,11 @@ class MibTree(ObjectTypePattern):
if self._vars and name <= self._vars.keys()[0]:
return self._vars[self._vars.keys()[0]]
else:
- raise
+ # Try following the white rabbit at our level
+ try:
+ return self._vars[self._vars.nextKey(name)]
+ except KeyError:
+ raise error.NoSuchInstanceError(idx=idx, name=name)
else:
try:
return nextNode.getNextNode(name, idx)
@@ -329,8 +333,8 @@ class MibTree(ObjectTypePattern):
# Mapping interface to subtree XXX
- def get(self, key, defVal=None): return self._vars.get(key, defVal)
- def keys(self): return self._vars.keys()
+# def get(self, key, defVal=None): return self._vars.get(key, defVal)
+# def keys(self): return self._vars.keys()
# MIB instrumentation
@@ -849,5 +853,8 @@ mibBuilder.exportSymbols(
)
# XXX
-# maybe re-factor tree facilities
+# maybe re-design tree scheme for clarity and less iters on tree walk?
# getAsName/setFromName goes out of MibRow?
+# revisit getNextNode() & getBranch() -- these need optimization
+# re-design MibVariable to be a subtree with a single leaf -- MibInstance;
+# MibColumn syntax is also MibVarInstance instead of ColInitializer