diff options
author | elie <elie> | 2013-09-24 14:03:09 +0000 |
---|---|---|
committer | elie <elie> | 2013-09-24 14:03:09 +0000 |
commit | 6d4c1e1dad11662f2d51170c83daa8caf4bf6da2 (patch) | |
tree | a63c79cfbfbab9c6fb8350051d484181a36b4ef8 | |
parent | b1bec1a424016203fca876322fd2a9e4d0c54d4c (diff) | |
download | pysnmp-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.py | 10 |
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() |