| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix InetAddress-to-InetAddressIPv{4,6} index cast
Previously, the pretty value of the InetAddress instance was being used.
Since InetAddress does not know how to format the raw octets to
protocol-specific syntax (IPv4 or IPv6), the pretty value was something
like u'\x00\x00\x00\x00' instead of u'0.0.0.0', which in turn caused
parse error in the protocol-specific subclass.
Passing the raw value (4- or 16-byte octet string) itself works as the
protocol-specific subclasses know how to handle these.
|
|
|
| |
NetworkAddress is one such index value.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That is, reverse the supertype-subtype direction in the type matching
call: Previously it was checking if the value was a supertype of OID,
whereas the correct check should be whether the value is a subtype of
OID. This had gone undetected so far because all values were of simple,
tagged types, and if a value is not an OID, their tag set differed, i.e.
neither is a subtype of the other.
Recent introduction of NetworkAddress revealed this bug: Being an
untagged Choice type, NetworkAddress's tag set is empty, and it counts
as a supertype of OID: resolveWithMib() then erroneously treated it as
an OID.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add OID-index roundtrip methods to NetworkAddress
This enables use of NetworkAddress as a table index.
* Use NetworkAddress for RFC1213-MIB::atNetAddress
Previously atNetAddress defined to be an IpAddress, whose table index
mapping was different from that of NetworkAddress. This prevented
proper use of RFC1213-MIB::atTable instances, because:
- OID-to-symbol resolution was failing;
- Symbol-to-OID mapping result was invalid.
* Move clone() from Choice to NetworkAddress
Previously it was implemented in pyasn1.type.univ.Choice in case there
may be more Choice-based types—such as NetworkAddress—used as a table
index. However, SMIv2 (RFC 2578) limits the SYNTAX of an OBJECT-TYPE to
be only PyASN1 “simple” types, and NetworkAddress is the only known
Choice-based type used as a table index in MIB-I, so there is little
reason to clutter PyASN1 with the one-off logic in anticipation of
something will probably never happen.
Having NetworkAddress's own clone() method also allows use of string
literals as the value, so the following invocations are all valid:
na = NetworkAddress()
na1234 = na.clone('1.2.3.4')
na1234_2 = na1234.clone()
na1234_3 = na.clone(na1234)
na4321 = na.clone(IpAddress('4.3.2.1'))
To elaborate on simple types, SMIv2 limits the object syntax to be:
- a base type (or its refinement)
- a textual convention (or its refinement); or
- a BITS pseudo-type.
All base types descend from ASN.1 integer, octet string, or OID, all of
which are simple types. PySNMP defines SMIv2 BITS as a subclass of
OctetString, which is again a simple type. Finally, a SMIv2 textual
convention (RFC 2579) is simply a syntactic sugar applied on top of
either a base type a BITS type, so it is a simple type.
|
|
|
|
|
| |
Commit 30167082cd3f2706f733168da8647bbc4126696d fixed string index
rendering except for implied string types, which were left broken.
Close that gap by applying the same workaround.
|
|
|
|
|
|
| |
Also added a workaround to pyasn1 constraints
relationships resolution bug that affected SNMP table
indices rendering.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
To make the timestamp growing in time as it should
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* fix to infinite recursion in TextualConvention.prettyIn()
Also, TextualConvention is now a new-style class
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Keep classes taking part in multiple inheritance old-style
till pyasn1 types become new-style. Also changed order of
multiple inheritance of TextualConvention to make sure
its methods take precedence.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- additional var-binds can now be specified as MIB objects
- additional var-binds will override implicitly added ones
|
| |
|
|
|
|
| |
performance and encoding accurancy of 'a' and 't' formats
|
| |
|
|
|
|
|
| |
valid SNMP SET operations on tables if RowStatus column is not
passed at the very end of var-binds.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|