Fix setRequestHeader to only append to headers added by user.
authorJonas Gastal <gastal@intel.com>
Sat, 18 May 2013 15:41:30 +0000 (12:41 -0300)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 7 Jun 2013 00:14:43 +0000 (02:14 +0200)
This causes no behavior change. The reason for this patch is due to a planned
change in QNetworkRequest that causes default headers to be added on creation.

Change-Id: Ic233a12eb0aa35475300d65738ee26872349518b
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
src/qml/qml/qqmlxmlhttprequest.cpp

index 80f5dec..8af1ca7 100644 (file)
@@ -1030,6 +1030,7 @@ private:
     int m_status;
     QString m_statusText;
     QNetworkRequest m_request;
+    QStringList m_addedHeaders;
     QQmlGuard<QNetworkReply> m_network;
     void destroyNetwork();
 
@@ -1083,6 +1084,7 @@ v8::Handle<v8::Value> QQmlXMLHttpRequest::open(v8::Handle<v8::Object> me, const
     m_method = method;
     m_url = url;
     m_state = Opened;
+    m_addedHeaders.clear();
     v8::TryCatch tc;
     dispatchCallback(me);
     if (tc.HasCaught()) printError(tc.Message());
@@ -1093,10 +1095,11 @@ void QQmlXMLHttpRequest::addHeader(const QString &name, const QString &value)
 {
     QByteArray utfname = name.toUtf8();
 
-    if (m_request.hasRawHeader(utfname)) {
+    if (m_addedHeaders.contains(name, Qt::CaseInsensitive)) {
         m_request.setRawHeader(utfname, m_request.rawHeader(utfname) + ',' + value.toUtf8());
     } else {
         m_request.setRawHeader(utfname, value.toUtf8());
+        m_addedHeaders.append(name);
     }
 }