diff options
Diffstat (limited to 'pysnmp/carrier/asyncio/dgram/udp6.py')
-rw-r--r-- | pysnmp/carrier/asyncio/dgram/udp6.py | 33 |
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 |