summaryrefslogtreecommitdiff
path: root/pysnmp/smi/mibs/SNMPv2-TM.py
diff options
context:
space:
mode:
authorelie <elie>2012-07-05 16:37:14 +0000
committerelie <elie>2012-07-05 16:37:14 +0000
commit2916281098797be21f31441cb81403ea988ce1de (patch)
treef0748392dd74dc6daae333b54ca27057b46cdbc3 /pysnmp/smi/mibs/SNMPv2-TM.py
parent3c4630d37a7f94d77ff1edde506bc9d1719d3030 (diff)
downloadpysnmp-2916281098797be21f31441cb81403ea988ce1de.tar.gz
fix to IPv6 address handling to prevent system from crashing whilst
running Python3; also UDP endpoint address convetion unified for clarity.
Diffstat (limited to 'pysnmp/smi/mibs/SNMPv2-TM.py')
-rw-r--r--pysnmp/smi/mibs/SNMPv2-TM.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-TM.py b/pysnmp/smi/mibs/SNMPv2-TM.py
index d437dec..cac0e77 100644
--- a/pysnmp/smi/mibs/SNMPv2-TM.py
+++ b/pysnmp/smi/mibs/SNMPv2-TM.py
@@ -1,3 +1,5 @@
+import socket
+from pyasn1.compat.octets import int2oct, oct2int
( OctetString, ) = mibBuilder.importSymbols('ASN1', 'OctetString')
( ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint, ) = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint")
@@ -15,19 +17,21 @@ class SnmpUDPAddress(TextualConvention, OctetString):
def prettyIn(self, value):
if isinstance(value, tuple):
# Wild hack -- need to implement TextualConvention.prettyIn
- value = [ int(x) for x in value[0].split('.') ] + \
- [ (value[1] >> 8) & 0xff, value[1] & 0xff ]
+ value = socket.inet_pton(socket.AF_INET, value[0]) + \
+ int2oct((value[1] >> 8) & 0xff) + \
+ int2oct(value[1] & 0xff)
return OctetString.prettyIn(self, value)
# Socket address syntax coercion
def __getitem__(self, i):
if not hasattr(self, '__tuple_value'):
- ints = self.asNumbers()
+ v = self.asOctets()
self.__tuple_value = (
- '.'.join(['%d' % x for x in ints[:4]]), ints[4] << 8 | ints[5]
- )
+ socket.inet_ntop(socket.AF_INET, v[:4]),
+ oct2int(v[4]) << 8 | oct2int(v[5])
+ )
return self.__tuple_value[i]
-
+
snmpCLNSDomain = ObjectIdentity(snmpDomains.name + (2,))
snmpCONSDomain = ObjectIdentity(snmpDomains.name + (3,))