diff options
author | Ilya Etingof <etingof@gmail.com> | 2018-07-20 09:05:29 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2018-07-20 09:53:47 +0200 |
commit | 6031836dfa0048d1de5643770175c648df840d88 (patch) | |
tree | d318e39585826a6b9b6c56725f1c6465acf617a2 | |
parent | d70831c76f1fb60a130080040cbe720b60a54894 (diff) | |
download | pysnmp-git-6031836dfa0048d1de5643770175c648df840d88.tar.gz |
Fix `Bits` initialization with `namedValues`
-rw-r--r-- | CHANGES.txt | 1 | ||||
-rw-r--r-- | pysnmp/proto/rfc1902.py | 9 |
2 files changed, 6 insertions, 4 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index be7ab3a8..f57aa6a8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,7 @@ Revision 4.4.5, released 2018-04-XX - Fixed typo in RFC1158 module - Fixed possible infinite loop in GETBULK response PDU builder - Fixed memory leak in the T`config.delContext()` VACM management harness +- Fixed `Bits` class initialization when enumeration values are given Revision 4.4.4, released 2018-01-03 ----------------------------------- diff --git a/pysnmp/proto/rfc1902.py b/pysnmp/proto/rfc1902.py index 12237482..3370f478 100644 --- a/pysnmp/proto/rfc1902.py +++ b/pysnmp/proto/rfc1902.py @@ -598,11 +598,12 @@ class Bits(OctetString): """ namedValues = namedval.NamedValues() - def __init__(self, value=univ.noValue, **kwargs): - if 'namedValues' not in kwargs: - kwargs['namedValues'] = self.namedValues + def __new__(cls, *args, **kwargs): + if 'namedValues' in kwargs: + Bits = cls.withNamedBits(**kwargs.pop('namedValues')) + return Bits(*args, **kwargs) - OctetString.__init__(self, value, **kwargs) + return OctetString.__new__(cls) def prettyIn(self, bits): if not isinstance(bits, (tuple, list)): |