summaryrefslogtreecommitdiffstats
path: root/src/network/socket
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/socket')
-rw-r--r--src/network/socket/qhttpsocketengine.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp
index b62bc05d22..428d21dc72 100644
--- a/src/network/socket/qhttpsocketengine.cpp
+++ b/src/network/socket/qhttpsocketengine.cpp
@@ -502,15 +502,20 @@ void QHttpSocketEngine::slotSocketConnected()
QByteArray data = method;
data += path;
data += " HTTP/1.1\r\n";
- data += "Proxy-Connection: keep-alive\r\n"
- "User-Agent: ";
- QVariant v = property("_q_user-agent");
- if (v.isValid())
- data += v.toByteArray();
- else
- data += "Mozilla/5.0";
- data += "\r\n"
- "Host: " + peerAddress + "\r\n";
+ data += "Proxy-Connection: keep-alive\r\n";
+ data += "Host: " + peerAddress + "\r\n";
+ if (!d->proxy.hasRawHeader("User-Agent")) {
+ data += "User-Agent: ";
+ QVariant v = property("_q_user-agent");
+ if (v.isValid())
+ data += v.toByteArray();
+ else
+ data += "Mozilla/5.0";
+ data += "\r\n";
+ }
+ foreach (const QByteArray &header, d->proxy.rawHeaderList()) {
+ data += header + ": " + d->proxy.rawHeader(header) + "\r\n";
+ }
QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(d->authenticator);
//qDebug() << "slotSocketConnected: priv=" << priv << (priv ? (int)priv->method : -1);
if (priv && priv->method != QAuthenticatorPrivate::None) {