diff options
author | elie <elie> | 2005-06-23 21:58:35 +0000 |
---|---|---|
committer | elie <elie> | 2005-06-23 21:58:35 +0000 |
commit | 9be0648dfd2d20c7defc53eaa4cadf23030c23dd (patch) | |
tree | 557965779598973ee7ef14357608316cdb4cc478 | |
parent | f82033e7673a1faa8dd4e98eb322c3628fc426e7 (diff) | |
download | pysnmp-9be0648dfd2d20c7defc53eaa4cadf23030c23dd.tar.gz |
bugfix to getNextNode() logic for an inexact shorter OID search
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-SMI.py | 15 |
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 |