summaryrefslogtreecommitdiff
path: root/pysnmp/proto
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-07-23 13:47:47 +0200
committerIlya Etingof <etingof@gmail.com>2017-07-23 13:47:47 +0200
commit1eff316a2ec9da2eea7255d358ca91eab89d9426 (patch)
treef38099a178532f33c5108f11772775a4cca1907e /pysnmp/proto
parent3e7f2e6e1090b24a7666259302bc5bc48561011d (diff)
downloadpysnmp-git-1eff316a2ec9da2eea7255d358ca91eab89d9426.tar.gz
backward compatible OctetString specialization
Diffstat (limited to 'pysnmp/proto')
-rw-r--r--pysnmp/proto/rfc1902.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/pysnmp/proto/rfc1902.py b/pysnmp/proto/rfc1902.py
index 75ecda9f..6c368e8b 100644
--- a/pysnmp/proto/rfc1902.py
+++ b/pysnmp/proto/rfc1902.py
@@ -612,10 +612,26 @@ class Bits(OctetString):
namedValues = namedval.NamedValues()
def __init__(self, *args, **kwargs):
- if 'namedValues' not in kwargs:
- kwargs['namedValues'] = self.namedValues
+ try:
+ self.namedValues = kwargs.pop('namedValues')
+
+ except KeyError:
+ pass
+
OctetString.__init__(self, *args, **kwargs)
+ def clone(self, *args, **kwargs):
+ namedValues = kwargs.pop('namedValues', self.namedValues)
+ clone = OctetString.clone(self, *args, **kwargs)
+ clone.namedValues = namedValues
+ return clone
+
+ def subtype(self, *args, **kwargs):
+ namedValues = kwargs.pop('namedValues', self.namedValues)
+ clone = OctetString.subtype(self, *args, **kwargs)
+ clone.namedValues = namedValues
+ return clone
+
def prettyIn(self, bits):
if not isinstance(bits, (tuple, list)):
return OctetString.prettyIn(self, bits) # raw bitstring