diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-10-18 11:48:50 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-10-18 11:48:50 +0200 |
commit | 05df34cc3ae0a04dbd1854f633e58b6180157d59 (patch) | |
tree | 45a85f6ab0ac6a3d5a16f30083cd4db48e709c23 /pysnmp | |
parent | 1065d25a16a6fa8dcb7ce98155f2d1babcff6ed5 (diff) | |
download | pysnmp-git-05df34cc3ae0a04dbd1854f633e58b6180157d59.tar.gz |
make sure not to pass `None` to SMI .setValue()
This is a prerequisite for pyasn1 0.4.x
Diffstat (limited to 'pysnmp')
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-SMI.py | 3 | ||||
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-TC.py | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-SMI.py b/pysnmp/smi/mibs/SNMPv2-SMI.py index cc20bd82..8c472798 100644 --- a/pysnmp/smi/mibs/SNMPv2-SMI.py +++ b/pysnmp/smi/mibs/SNMPv2-SMI.py @@ -10,6 +10,7 @@ from pysnmp.smi.indices import OidOrderedDict from pysnmp.smi import exval, error from pysnmp.proto import rfc1902 from pysnmp import cache, debug +from pyasn1.type import univ from pyasn1.error import PyAsn1Error Integer, ObjectIdentifier = mibBuilder.importSymbols( @@ -619,6 +620,8 @@ class MibScalarInstance(MibTree): return self.syntax.clone() def setValue(self, value, name, idx): + if value is None: + value = univ.noValue try: if hasattr(self.syntax, 'setValue'): return self.syntax.setValue(value) diff --git a/pysnmp/smi/mibs/SNMPv2-TC.py b/pysnmp/smi/mibs/SNMPv2-TC.py index f21dd33b..57371bd8 100644 --- a/pysnmp/smi/mibs/SNMPv2-TC.py +++ b/pysnmp/smi/mibs/SNMPv2-TC.py @@ -9,6 +9,7 @@ import inspect import string from pysnmp.smi.error import * from pysnmp import debug +from pyasn1.type import univ from pyasn1.compat import octets from pyasn1.type.base import Asn1Item @@ -45,6 +46,8 @@ class TextualConvention(object): return self.clone() def setValue(self, value): + if value is None: + value = univ.noValue return self.clone(value) def prettyOut(self, value): # override asn1 type method @@ -406,6 +409,8 @@ class TestAndIncr(TextualConvention, Integer): value += 1 if value > 2147483646: value = 0 + if value is None: + value = univ.noValue return self.clone(value) @@ -476,6 +481,9 @@ class RowStatus(TextualConvention, Integer): } def setValue(self, value): + if value is None: + value = univ.noValue + value = self.clone(value) # Run through states transition matrix, @@ -485,6 +493,10 @@ class RowStatus(TextualConvention, Integer): self.hasValue() and self or self.stNotExists), (MibOperationError, None) ) + + if newState is None: + newState = univ.noValue + newState = self.clone(newState) debug.logger & debug.flagIns and debug.logger( |