Use NetworkSessionFailedError in QNetworkReply
authorShane Kearns <ext-shane.2.kearns@nokia.com>
Wed, 4 Apr 2012 15:31:09 +0000 (16:31 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 11 Apr 2012 20:18:48 +0000 (22:18 +0200)
Switched the error code.
Republish the error string from the bearer plugin if possible.

Change-Id: I9e4ac7a9914fbf2e87fe8fd3a5175deda6d933d2
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
src/network/access/qnetworkaccessmanager.h
src/network/access/qnetworkreplyhttpimpl.cpp
src/network/access/qnetworkreplyimpl.cpp

index 4d23fcb..85f963b 100644 (file)
@@ -157,6 +157,7 @@ protected:
 private:
     friend class QNetworkReplyImplPrivate;
     friend class QNetworkReplyHttpImpl;
+    friend class QNetworkReplyHttpImplPrivate;
 
     Q_DECLARE_PRIVATE(QNetworkAccessManager)
     Q_PRIVATE_SLOT(d_func(), void _q_replyFinished())
index e019ade..54b98ce 100644 (file)
@@ -1726,8 +1726,13 @@ void QNetworkReplyHttpImplPrivate::_q_networkSessionFailed()
     // Abort waiting and working replies.
     if (state == WaitingForSession || state == Working) {
         state = Working;
-        error(QNetworkReplyImpl::UnknownNetworkError,
-              QCoreApplication::translate("QNetworkReply", "Network session error."));
+        QSharedPointer<QNetworkSession> session(manager->d_func()->networkSession);
+        QString errorStr;
+        if (session)
+            errorStr = session->errorString();
+        else
+            errorStr = QCoreApplication::translate("QNetworkReply", "Network session error.");
+        error(QNetworkReplyImpl::NetworkSessionFailedError, errorStr);
         finished();
     }
 }
index 9fdc29a..8a66539 100644 (file)
@@ -113,7 +113,7 @@ void QNetworkReplyImplPrivate::_q_startOperation()
         } else {
             qWarning("Backend is waiting for QNetworkSession to connect, but there is none!");
             state = Working;
-            error(QNetworkReplyImpl::UnknownNetworkError,
+            error(QNetworkReplyImpl::NetworkSessionFailedError,
                   QCoreApplication::translate("QNetworkReply", "Network session error."));
             finished();
         }
@@ -299,8 +299,13 @@ void QNetworkReplyImplPrivate::_q_networkSessionFailed()
     // Abort waiting and working replies.
     if (state == WaitingForSession || state == Working) {
         state = Working;
-        error(QNetworkReplyImpl::UnknownNetworkError,
-              QCoreApplication::translate("QNetworkReply", "Network session error."));
+        QSharedPointer<QNetworkSession> session(manager->d_func()->networkSession);
+        QString errorStr;
+        if (session)
+            errorStr = session->errorString();
+        else
+            errorStr = QCoreApplication::translate("QNetworkReply", "Network session error.");
+        error(QNetworkReplyImpl::NetworkSessionFailedError, errorStr);
         finished();
     }
 }