diff options
author | elie <elie> | 2013-09-24 14:03:09 +0000 |
---|---|---|
committer | elie <elie> | 2013-09-24 14:03:09 +0000 |
commit | 85667591c6cc1c6aa4fc2ec1ba0e5f504c08c0ef (patch) | |
tree | 2579e5eedb238258b741e8693ac115fdd4780469 /pysnmp/carrier | |
parent | 0befb6f43c6836fd39b45a235b495c7c1bd2d514 (diff) | |
download | pysnmp-git-85667591c6cc1c6aa4fc2ec1ba0e5f504c08c0ef.tar.gz |
forcibly zero ZoneID, FlowID and ScopeID components to make it
comparable with user-specified IPv6 endpoint
Diffstat (limited to 'pysnmp/carrier')
-rw-r--r-- | pysnmp/carrier/asyncore/dgram/base.py | 10 |
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() |