All pastes #940325 Raw Edit

Mine

public diff v1 · immutable
·published 2008-03-12 21:53 UTC
rendered paste body
diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cppindex f005939..ea5f48e 100644--- a/src/network/access/qnetworkaccesshttpbackend.cpp+++ b/src/network/access/qnetworkaccesshttpbackend.cpp@@ -155,7 +155,7 @@ protected: }; QNetworkAccessHttpBackend::QNetworkAccessHttpBackend()-    : QNetworkAccessBackend(), httpReply(0), http(0), uploadDevice(0)+    : QNetworkAccessBackend(), httpReply(0), http(0), uploadDevice(0), pendingSslConfiguration(0) { }@@ -163,6 +163,7 @@ QNetworkAccessHttpBackend::~QNetworkAccessHttpBackend() {     if (http)         disconnectFromHttp();+    delete pendingSslConfiguration; } void QNetworkAccessHttpBackend::disconnectFromHttp()@@ -251,6 +252,11 @@ void QNetworkAccessHttpBackend::postRequest()     httpReply = http->sendRequest(httpRequest);     httpReply->setParent(this);+    if (pendingSslConfiguration) {+        httpReply->setSslConfiguration(*pendingSslConfiguration);+        delete pendingSslConfiguration;+        pendingSslConfiguration = 0;+    }     connect(httpReply, SIGNAL(readyRead()), SLOT(replyReadyRead()));     connect(httpReply, SIGNAL(finished()), SLOT(replyFinished()));@@ -595,12 +601,20 @@ void QNetworkAccessHttpBackend::ignoreSslErrors() void QNetworkAccessHttpBackend::fetchSslConfiguration(QSslConfiguration &config) const {-    config = httpReply->sslConfiguration();+    if (httpReply)+        config = httpReply->sslConfiguration();+    else if (pendingSslConfiguration)+        config = *pendingSslConfiguration; } void QNetworkAccessHttpBackend::setSslConfiguration(const QSslConfiguration &newconfig) {-    httpReply->setSslConfiguration(newconfig);+    if (httpReply)+        httpReply->setSslConfiguration(newconfig);+    else if (pendingSslConfiguration)+        *pendingSslConfiguration = newconfig;+    else+        pendingSslConfiguration = new QSslConfiguration(newconfig); } #endifdiff --git a/src/network/access/qnetworkaccesshttpbackend_p.h b/src/network/access/qnetworkaccesshttpbackend_p.hindex 15cfcb5..514def2 100644--- a/src/network/access/qnetworkaccesshttpbackend_p.h+++ b/src/network/access/qnetworkaccesshttpbackend_p.h@@ -77,6 +77,9 @@ private:     QHttpNetworkReply *httpReply;     QPointer<QNetworkAccessHttpBackendCache> http;     QNetworkAccessHttpBackendIODevice *uploadDevice;+#ifndef QT_NO_OPENSSL+    QSslConfiguration *pendingSslConfiguration;+#endif     void finished();            // override     void disconnectFromHttp();