summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2005-10-11 19:23:34 +0000
committerelie <elie>2005-10-11 19:23:34 +0000
commitcdc910dc193b26c46da62d3dfb06cda50d0594a8 (patch)
tree2dd1030c9876ca64db5e93c88d8a4b21067631af
parent9d30677c2d525ded6f72de181e48b348bbf3e78d (diff)
downloadpysnmp-cdc910dc193b26c46da62d3dfb06cda50d0594a8.tar.gz
app registration fixes
-rw-r--r--pysnmp/proto/rfc3412.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/pysnmp/proto/rfc3412.py b/pysnmp/proto/rfc3412.py
index 1c83ab2..5acd728 100644
--- a/pysnmp/proto/rfc3412.py
+++ b/pysnmp/proto/rfc3412.py
@@ -63,10 +63,13 @@ class MsgAndPduDispatcher:
def registerContextEngineId(self, contextEngineId, pduTypes, processPdu):
"""Register application with dispatcher"""
# 4.3.2 -> noop
- if contextEngineId is None:
- # Default to local snmpEngineId
- contextEngineId,= self.mibInstrumController.mibBuilder.importSymbols('SNMP-FRAMEWORK-MIB', 'snmpEngineID')
- contextEngineId = contextEngineId.syntax
+
+ # Default to local snmpEngineID
+# XXX
+# if contextEngineId is None:
+# # Default to local snmpEngineId
+# contextEngineId,= self.mibInstrumController.mibBuilder.importSymbols('SNMP-FRAMEWORK-MIB', 'snmpEngineID')
+# contextEngineId = contextEngineId.syntax
# 4.3.3
for pduType in pduTypes:
@@ -93,9 +96,12 @@ class MsgAndPduDispatcher:
del self.__appsRegistration[k]
def getRegisteredApp(self, contextEngineId, pduType):
- return self.__appsRegistration.get(
- (str(contextEngineId), pduType)
- )
+ k = ( str(contextEngineId), pduType )
+ if self.__appsRegistration.has_key(k):
+ return self.__appsRegistration[k]
+ k = ( '', pduType )
+ if self.__appsRegistration.has_key(k):
+ return self.__appsRegistration[k] # wildcard
# Dispatcher <-> application API
@@ -340,6 +346,8 @@ class MsgAndPduDispatcher:
'val': snmpUnknownPDUHandlers.syntax
}
+ # XXX fails on unknown PDU
+
try:
( destTransportDomain,
destTransportAddress,