DebugClients/Python3/DebugClientBase.py

changeset 1179
7661ab683f7b
parent 1112
8a7d1b9d18db
child 1305
14d63fe71d53
--- a/DebugClients/Python3/DebugClientBase.py	Sat Jul 16 15:03:09 2011 +0200
+++ b/DebugClients/Python3/DebugClientBase.py	Sun Jul 17 18:10:54 2011 +0200
@@ -1061,12 +1061,20 @@
         if remoteAddress is None:                               # default: 127.0.0.1
             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
             sock.connect((DebugProtocol.DebugAddress, port))
-        elif ":" in remoteAddress:                              # IPv6
-            sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
-            sock.connect((remoteAddress, port))
-        else:                                                   # IPv4
-            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-            sock.connect((remoteAddress, port))
+        else:
+            if "@@i" in remoteAddress:
+                remoteAddress, index = remoteAddress.split("@@i")
+            else:
+                index = 0
+            if ":" in remoteAddress:                              # IPv6
+                sockaddr = socket.getaddrinfo(
+                    remoteAddress, port, 0, 0, socket.SOL_TCP)[0][-1]
+                sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+                sockaddr = sockaddr[:-1] + (int(index),)
+                sock.connect(sockaddr)
+            else:                                                   # IPv4
+                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+                sock.connect((remoteAddress, port))
 
         self.readstream = AsyncFile(sock, sys.stdin.mode, sys.stdin.name)
         self.writestream = AsyncFile(sock, sys.stdout.mode, sys.stdout.name)

eric ide

mercurial