Colin Watson has proposed merging 
~cjwatson/launchpad:py3-mirror-prober-https-proxy into launchpad:master.

Commit message:
Fix mirror prober HTTPS proxy handling on Python 3

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1935999 in Launchpad itself: "Mirror prober "Data must not be unicode" 
error"
  https://bugs.launchpad.net/launchpad/+bug/1935999

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/405688

Unfortunately this doesn't seem to have useful unit test coverage; I suspect it 
was too hard to get going at the time and we skipped it.  Since this is a 
production regression I want to get it fixed ASAP, so I've just tested this 
manually on dogfood.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of 
~cjwatson/launchpad:py3-mirror-prober-https-proxy into launchpad:master.
diff --git a/lib/lp/services/httpproxy/connect_tunneling.py b/lib/lp/services/httpproxy/connect_tunneling.py
index 59a542c..8470c63 100644
--- a/lib/lp/services/httpproxy/connect_tunneling.py
+++ b/lib/lp/services/httpproxy/connect_tunneling.py
@@ -29,7 +29,7 @@ class TunnelingTCP4ClientEndpoint(TCP4ClientEndpoint):
     To accomplish that, this endpoint sends an HTTP CONNECT to the proxy.
     """
 
-    _responseMatcher = re.compile(r'HTTP/1\.. 200')
+    _responseMatcher = re.compile(br'HTTP/1\.. 200')
 
     def __init__(self, reactor, host, port, proxyConf, contextFactory,
                  timeout=30, bindAddress=None):
@@ -45,11 +45,11 @@ class TunnelingTCP4ClientEndpoint(TCP4ClientEndpoint):
 
     def requestTunnel(self, protocol):
         """Asks the proxy to open a tunnel."""
-        tunnelReq = 'CONNECT %s:%s HTTP/1.1\n' % (self._tunneledHost,
-                                                  self._tunneledPort)
+        tunnelReq = b'CONNECT %s:%d HTTP/1.1\n' % (self._tunneledHost,
+                                                   self._tunneledPort)
         if self._proxyAuthHeader:
-            tunnelReq += 'Proxy-Authorization: %s\n' % self._proxyAuthHeader
-        tunnelReq += '\n'
+            tunnelReq += b'Proxy-Authorization: %s\n' % self._proxyAuthHeader
+        tunnelReq += b'\n'
         protocol.transport.write(tunnelReq)
         self._protocolDataReceived = protocol.dataReceived
         protocol.dataReceived = self.processProxyResponse
_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to