tinyproxy: use IPv6 if HGIPV6 is set to 1
authorJun Wu <quark@fb.com>
Wed, 15 Feb 2017 22:53:45 -0800
changeset 31005 d8d698bcdcd6
parent 31004 d05fefbb5ab3
child 31006 d4916aebf3d0
tinyproxy: use IPv6 if HGIPV6 is set to 1 This patch makes tinyproxy.py work in IPv6 mode if HGIPV6 is set to 1. This will make test-http-proxy.t pass on IPv6 machines.
tests/tinyproxy.py
--- a/tests/tinyproxy.py	Wed Feb 15 21:09:00 2017 -0800
+++ b/tests/tinyproxy.py	Wed Feb 15 22:53:45 2017 -0800
@@ -26,6 +26,11 @@
 urlparse = util.urlparse
 socketserver = util.socketserver
 
+if os.environ.get('HGIPV6', '0') == '1':
+    family = socket.AF_INET6
+else:
+    family = socket.AF_INET
+
 class ProxyHandler (httpserver.basehttprequesthandler):
     __base = httpserver.basehttprequesthandler
     __base_handle = __base.handle
@@ -65,7 +70,7 @@
         return 1
 
     def do_CONNECT(self):
-        soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        soc = socket.socket(family, socket.SOCK_STREAM)
         try:
             if self._connect_to(self.path, soc):
                 self.log_request(200)
@@ -85,7 +90,7 @@
         if scm != 'http' or fragment or not netloc:
             self.send_error(400, "bad url %s" % self.path)
             return
-        soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        soc = socket.socket(family, socket.SOCK_STREAM)
         try:
             if self._connect_to(netloc, soc):
                 self.log_request()