File SQUID_2016_7_port.patch of Package squid.3507

Index: squid-3.3.14/src/client_side.cc
===================================================================
--- squid-3.3.14.orig/src/client_side.cc
+++ squid-3.3.14/src/client_side.cc
@@ -2650,6 +2650,21 @@ clientProcessRequest(ConnStateData *conn
         goto finish;
     }
 
+        // when absolute-URI is provided Host header should be ignored. However
+        // some code still uses Host directly so normalize it.
+        // For now preserve the case where Host is completely absent. That matters.
+        if (request->header.has(HDR_HOST)) {
+            const char *host = request->header.getStr(HDR_HOST);
+            SBuf authority(request->GetHost());
+            if (request->port != urlDefaultPort(request->protocol))
+                authority.appendf(":%d", request->port);
+            debugs(33, 5, "URL domain " << authority << " overrides header Host: " << host);
+            // URL authority overrides Host header
+            request->header.delById(HDR_HOST);
+            request->header.putStr(HDR_HOST, authority.c_str());
+        }
+
+
     request->clientConnectionManager = conn;
 
     request->flags.accelerated = http->flags.accel;
openSUSE Build Service is sponsored by