summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2013-09-24 14:03:09 +0000
committerelie <elie>2013-09-24 14:03:09 +0000
commit6d4c1e1dad11662f2d51170c83daa8caf4bf6da2 (patch)
treea63c79cfbfbab9c6fb8350051d484181a36b4ef8
parentb1bec1a424016203fca876322fd2a9e4d0c54d4c (diff)
downloadpysnmp-6d4c1e1dad11662f2d51170c83daa8caf4bf6da2.tar.gz
forcibly zero ZoneID, FlowID and ScopeID components to make it
comparable with user-specified IPv6 endpoint
-rw-r--r--pysnmp/carrier/asynsock/dgram/base.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/pysnmp/carrier/asynsock/dgram/base.py b/pysnmp/carrier/asynsock/dgram/base.py
index 627c62d..7b2cce3 100644
--- a/pysnmp/carrier/asynsock/dgram/base.py
+++ b/pysnmp/carrier/asynsock/dgram/base.py
@@ -72,6 +72,16 @@ class DgramSocketTransport(AbstractSocketTransport):
def handle_read(self):
try:
incomingMessage, transportAddress = self.socket.recvfrom(65535)
+ if '%' in transportAddress[0]: # strip zone ID
+ transportAddress = (transportAddress[0].split('%')[0],
+ transportAddress[1],
+ 0, # flowinfo
+ 0) # scopeid
+ else:
+ transportAddress = (transportAddress[0],
+ transportAddress[1],
+ 0, # flowinfo
+ 0) # scopeid
debug.logger & debug.flagIO and debug.logger('handle_read: transportAddress %r -> %r incomingMessage (%d octets) %s' % (transportAddress, self.__getsockname(), len(incomingMessage), debug.hexdump(incomingMessage)))
if not incomingMessage:
self.handle_close()