diff options
author | elie <elie> | 2013-06-10 22:36:05 +0000 |
---|---|---|
committer | elie <elie> | 2013-06-10 22:36:05 +0000 |
commit | b1b008d452938a7b75d55a836f70b3c3337df4ae (patch) | |
tree | 1d62bf71dd5b40fa2382d617a265a59488453c65 /pysnmp/proto | |
parent | 000ddff27b8a8c5bbc54ee36b31dedeca5ddde20 (diff) | |
download | pysnmp-b1b008d452938a7b75d55a836f70b3c3337df4ae.tar.gz |
Fix to SnmpUSMSecurityModel._sec2usr() - raise NoSuchInstance error
to emulate MIB lookup failure. Previous version of the code always
succeeded returning securityName on failure. That screwed new row
creation logic.
Diffstat (limited to 'pysnmp/proto')
-rw-r--r-- | pysnmp/proto/secmod/rfc3414/service.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/pysnmp/proto/secmod/rfc3414/service.py b/pysnmp/proto/secmod/rfc3414/service.py index 41f64f9..e4bd1be 100644 --- a/pysnmp/proto/secmod/rfc3414/service.py +++ b/pysnmp/proto/secmod/rfc3414/service.py @@ -56,6 +56,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel): self.__securityToUserMap = {} nextMibNode = usmUserEngineID + while 1: try: nextMibNode = usmUserEngineID.getNextNode( @@ -82,9 +83,11 @@ class SnmpUSMSecurityModel(AbstractSecurityModel): snmpEngineID, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMP-FRAMEWORK-MIB', 'snmpEngineID') securityEngineID = snmpEngineID.syntax - userName = self.__securityToUserMap.get( - (securityEngineID, securityName), securityName - ) + try: + userName = self.__securityToUserMap[(securityEngineID, securityName)] + except KeyError: + debug.logger & debug.flagSM and debug.logger('_sec2usr: no entry exists for snmpEngineId %r, securityName %r' % (securityEngineID, securityName)) + raise NoSuchInstanceError() # emulate MIB lookup debug.logger & debug.flagSM and debug.logger('_sec2usr: using userName %r for snmpEngineId %r, securityName %r' % (userName, securityEngineID, securityName)) |