diff options
author | elie <elie> | 2012-04-20 19:34:28 +0000 |
---|---|---|
committer | elie <elie> | 2012-04-20 19:34:28 +0000 |
commit | 9b5408e005d77a635e059cd79862c89c20a95671 (patch) | |
tree | bbec9d80278a60a97c6c3f1de43c801026b85dc6 | |
parent | 72d53b165dc9fcdf1dc155d27d7c936b52ea6a5f (diff) | |
download | pysnmp-9b5408e005d77a635e059cd79862c89c20a95671.tar.gz |
added pyasn1 decoder failures diagnistics in debug mode
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | pysnmp/proto/mpmod/rfc2576.py | 2 | ||||
-rw-r--r-- | pysnmp/proto/mpmod/rfc3412.py | 1 | ||||
-rw-r--r-- | pysnmp/proto/secmod/rfc3414/service.py | 11 |
4 files changed, 10 insertions, 5 deletions
@@ -26,6 +26,7 @@ Revision 4.2.2 - When running on Python3, SMI will re-raise exceptions with the original traceback for easier diagnostics. - Out of PYTHONPATH MIB paths now supported. +- Added pyasn1 decoder failures diagnistics in debug mode. - Fix to non-MT-safe class attributes at SNMPv3 MP & SEC modules. - Fix to ContextName handling in bytes form whilst running Python3. Data mismatch error would return otherwise. diff --git a/pysnmp/proto/mpmod/rfc2576.py b/pysnmp/proto/mpmod/rfc2576.py index 2498d6a..6e74f27 100644 --- a/pysnmp/proto/mpmod/rfc2576.py +++ b/pysnmp/proto/mpmod/rfc2576.py @@ -1,4 +1,5 @@ # SNMP v1 & v2c message processing models implementation +import sys from pyasn1.codec.ber import decoder from pyasn1.type import univ from pyasn1.compat.octets import null @@ -223,6 +224,7 @@ class SnmpV1MessageProcessingModel(AbstractMessageProcessingModel): wholeMsg, asn1Spec=self._snmpMsgSpec ) except PyAsn1Error: + debug.logger & debug.flagMP and debug.logger('prepareDataElements: %s' % (sys.exc_info()[1],)) snmpInASNParseErrs, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMPv2-MIB', 'snmpInASNParseErrs') snmpInASNParseErrs.syntax = snmpInASNParseErrs.syntax + 1 raise error.StatusInformation( diff --git a/pysnmp/proto/mpmod/rfc3412.py b/pysnmp/proto/mpmod/rfc3412.py index aa90caa..e51eb21 100644 --- a/pysnmp/proto/mpmod/rfc3412.py +++ b/pysnmp/proto/mpmod/rfc3412.py @@ -459,6 +459,7 @@ class SnmpV3MessageProcessingModel(AbstractMessageProcessingModel): wholeMsg, asn1Spec=self._snmpMsgSpec ) except PyAsn1Error: + debug.logger & debug.flagMP and debug.logger('prepareDataElements: %s' % (sys.exc_info()[1],)) snmpInASNParseErrs, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMPv2-MIB', 'snmpInASNParseErrs') snmpInASNParseErrs.syntax = snmpInASNParseErrs.syntax + 1 raise error.StatusInformation( diff --git a/pysnmp/proto/secmod/rfc3414/service.py b/pysnmp/proto/secmod/rfc3414/service.py index 586f6a3..375b90c 100644 --- a/pysnmp/proto/secmod/rfc3414/service.py +++ b/pysnmp/proto/secmod/rfc3414/service.py @@ -490,11 +490,12 @@ class SnmpUSMSecurityModel(AbstractSecurityModel): asn1Spec=self.__securityParametersSpec ) except PyAsn1Error: - snmpInASNParseErrs, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMPv2-MIB', 'snmpInASNParseErrs') - snmpInASNParseErrs.syntax = snmpInASNParseErrs.syntax + 1 - raise error.StatusInformation( - errorIndication=errind.parseError - ) + debug.logger & debug.flagSM and debug.logger('processIncomingMsg: %s' % (sys.exc_info()[1],)) + snmpInASNParseErrs, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMPv2-MIB', 'snmpInASNParseErrs') + snmpInASNParseErrs.syntax = snmpInASNParseErrs.syntax + 1 + raise error.StatusInformation( + errorIndication=errind.parseError + ) debug.logger & debug.flagSM and debug.logger('processIncomingMsg: %s' % (securityParameters.prettyPrint(),)) |