diff options
author | Shane Kearns <shane.kearns@accenture.com> | 2011-10-26 14:45:50 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-31 20:34:43 +0100 |
commit | 0ad18e18d1223b173d4a0d374b70ec08c3b22b11 (patch) | |
tree | fa8beb5814fbb98795e2fecb22963e4bd725e559 /src/network/socket/qhttpsocketengine.cpp | |
parent | 869bd3d6e1e5d63592c482580a535c7b1909172e (diff) | |
download | qtbase-0ad18e18d1223b173d4a0d374b70ec08c3b22b11.tar.gz |
HTTP proxy engine - accept standard Connection header
The Proxy-Connection header is a non standard header, but is widely
used so forming a de-facto standard.
Some proxies use the official Connection header, so we should check
for that in responses. Otherwise https connections over http proxy
fail in case the proxy sends "Connection: close" with the 407 reply.
Task-number: QTBUG-22177
Change-Id: If6cfa4ebb7ac9d97d65b6ddcc8257aee20ac0448
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Diffstat (limited to 'src/network/socket/qhttpsocketengine.cpp')
-rw-r--r-- | src/network/socket/qhttpsocketengine.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp index 5c672ec227..b62bc05d22 100644 --- a/src/network/socket/qhttpsocketengine.cpp +++ b/src/network/socket/qhttpsocketengine.cpp @@ -614,6 +614,10 @@ void QHttpSocketEngine::slotSocketReadNotification() bool willClose; QString proxyConnectionHeader = responseHeader.value(QLatin1String("Proxy-Connection")); + // Although most proxies use the unofficial Proxy-Connection header, the Connection header + // from http spec is also allowed. + if (proxyConnectionHeader.isEmpty()) + proxyConnectionHeader = responseHeader.value(QLatin1String("Connection")); proxyConnectionHeader = proxyConnectionHeader.toLower(); if (proxyConnectionHeader == QLatin1String("close")) { willClose = true; |