summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2013-09-24 14:03:09 +0000
committerelie <elie>2013-09-24 14:03:09 +0000
commit85667591c6cc1c6aa4fc2ec1ba0e5f504c08c0ef (patch)
tree2579e5eedb238258b741e8693ac115fdd4780469
parent0befb6f43c6836fd39b45a235b495c7c1bd2d514 (diff)
downloadpysnmp-git-85667591c6cc1c6aa4fc2ec1ba0e5f504c08c0ef.tar.gz
forcibly zero ZoneID, FlowID and ScopeID components to make it
comparable with user-specified IPv6 endpoint
-rw-r--r--pysnmp/carrier/asyncore/dgram/base.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/pysnmp/carrier/asyncore/dgram/base.py b/pysnmp/carrier/asyncore/dgram/base.py
index 627c62d2..7b2cce3f 100644
--- a/pysnmp/carrier/asyncore/dgram/base.py
+++ b/pysnmp/carrier/asyncore/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()