summaryrefslogtreecommitdiff
path: root/pysnmp/carrier/asyncio/dgram/udp6.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysnmp/carrier/asyncio/dgram/udp6.py')
-rw-r--r--pysnmp/carrier/asyncio/dgram/udp6.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pysnmp/carrier/asyncio/dgram/udp6.py b/pysnmp/carrier/asyncio/dgram/udp6.py
new file mode 100644
index 0000000..8d79174
--- /dev/null
+++ b/pysnmp/carrier/asyncio/dgram/udp6.py
@@ -0,0 +1,33 @@
+import socket
+from pysnmp.carrier.base import AbstractTransportAddress
+from pysnmp.carrier.asyncio.dgram.base import DgramAsyncioProtocol
+from pysnmp.carrier import error
+try:
+ import asyncio
+except ImportError:
+ import trollius as asyncio
+
+loop = asyncio.get_event_loop()
+
+domainName = snmpUDP6Domain = (1, 3, 6, 1, 2, 1, 100, 1, 2)
+
+class Udp6TransportAddress(tuple, AbstractTransportAddress): pass
+
+class Udp6AsyncioTransport(DgramAsyncioProtocol):
+ sockFamily = socket.has_ipv6 and socket.AF_INET6 or None
+ addressType = Udp6TransportAddress
+
+ def normalizeAddress(self, transportAddress):
+ if '%' in transportAddress[0]: # strip zone ID
+ return self.addressType(
+ (transportAddress[0].split('%')[0],
+ transportAddress[1],
+ 0, # flowinfo
+ 0) # scopeid
+ )
+ else:
+ return self.addressType(
+ (transportAddress[0], transportAddress[1], 0, 0)
+ )
+
+Udp6Transport = Udp6AsyncioTransport