Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7cf9c65 authored by Henrik Baard's avatar Henrik Baard Committed by Steve Kondik
Browse files

Fixed problem with proxy server sometimes responds with 400 Bad Request when trying

to connect to a site using https.

The CONNECT to the server lacks the 'host' header which is mandatory according to the
specification. Some proxy servers are strictly following the specification and sends
back the 400 Bad Requst error code.
parent 433de557
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -205,10 +205,13 @@ public class HttpsConnection extends Connection {
                BasicHttpRequest proxyReq = new BasicHttpRequest
                    ("CONNECT", mHost.toHostString());

                // add all 'proxy' headers from the original request
                // add all 'proxy' headers from the original request, we also need
                // to add 'host' header unless we want proxy to answer us with a
                // 400 Bad Request
                for (Header h : req.mHttpRequest.getAllHeaders()) {
                    String headerName = h.getName().toLowerCase();
                    if (headerName.startsWith("proxy") || headerName.equals("keep-alive")) {
                    if (headerName.startsWith("proxy") || headerName.equals("keep-alive")
                            || headerName.equals("host")) {
                        proxyReq.addHeader(h);
                    }
                }