summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,