diff options
-rw-r--r-- | CHANGES.txt | 5 | ||||
-rw-r--r-- | pysnmp/proto/mpmod/rfc2576.py | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 2f2097a8..24bc91f3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -108,6 +108,11 @@ Revision 4.2.5rc2 bogus stateReference in some cases what causes SNMP engine crashes. - Fix to IPv6 transport to zero ZoneID, FlowID and ScopeID components sometimes coming along with incoming packet. +- Fix to SNMPv1 MP module to pass stateReference to registered app on + unconfirmed notifications reception (to let NotificationReceiver + Apps browsing request details). + (transport information at the moment) at SNMP engine. +- - Asyncsock sockets now configured with SO_REUSEADDR option to fix possible Windows error 10048. - Gracefully handle malformed SnmpEngineID at USM coming from SNMPv3 header. diff --git a/pysnmp/proto/mpmod/rfc2576.py b/pysnmp/proto/mpmod/rfc2576.py index 5b6f6ceb..d988496c 100644 --- a/pysnmp/proto/mpmod/rfc2576.py +++ b/pysnmp/proto/mpmod/rfc2576.py @@ -308,9 +308,6 @@ class SnmpV1MessageProcessingModel(AbstractMessageProcessingModel): else: sendPduHandle = None - # state is only saved for incoming confirmed-type requests - stateReference = None - # no error by default statusInformation = None @@ -330,6 +327,8 @@ class SnmpV1MessageProcessingModel(AbstractMessageProcessingModel): errorIndication = errind.dataMismatch ) + stateReference = None + # rfc3412: 7.2.12c smHandler.releaseStateInformation(securityStateReference) @@ -398,8 +397,12 @@ class SnmpV1MessageProcessingModel(AbstractMessageProcessingModel): # rfc3412: 7.2.14 if pduType in rfc3411.unconfirmedClassPDUs: + # Pass new stateReference to let app browse request details + stateReference = self._cache.newStateReference() + # This is not specified explicitly in RFC smHandler.releaseStateInformation(securityStateReference) + return ( messageProcessingModel, securityModel, securityName, |