DebugClients/Python3/DebugClientBase.py

branch
5_1_x
changeset 1181
31d20dc43805
parent 936
f6bc16bd4198
child 1306
2136f10a9110
--- a/DebugClients/Python3/DebugClientBase.py	Sun Jul 17 11:22:05 2011 +0200
+++ b/DebugClients/Python3/DebugClientBase.py	Sun Jul 17 18:10:54 2011 +0200
@@ -1053,12 +1053,20 @@
         if remoteAddress is None:                               # default: 127.0.0.1
             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
             sock.connect((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