src/network/access/qhttpnetworkconnection.cpp
branchRCL_3
changeset 5 d3bac044e0f0
parent 4 3b1da2848fc7
child 7 3f74d0d4af4c
--- a/src/network/access/qhttpnetworkconnection.cpp	Fri Feb 19 23:40:16 2010 +0200
+++ b/src/network/access/qhttpnetworkconnection.cpp	Fri Mar 12 15:46:37 2010 +0200
@@ -564,7 +564,8 @@
 }
 
 
-QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket* socket)
+QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket* socket,
+                                                   const QString &extraDetail)
 {
     Q_ASSERT(socket);
 
@@ -581,7 +582,7 @@
         errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "Connection closed"));
         break;
     case QNetworkReply::TimeoutError:
-        errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "HTTP request failed"));
+        errorString = QLatin1String(QT_TRANSLATE_NOOP("QAbstractSocket", "Socket operation timed out"));
         break;
     case QNetworkReply::ProxyAuthenticationRequiredError:
         errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "Proxy requires authentication"));
@@ -600,7 +601,7 @@
         break;
     default:
         // all other errors are treated as QNetworkReply::UnknownNetworkError
-        errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "HTTP request failed"));
+        errorString = extraDetail;
         break;
     }
     return errorString;
@@ -687,8 +688,14 @@
         if (channels[i].resendCurrent) {
             channels[i].resendCurrent = false;
             channels[i].state = QHttpNetworkConnectionChannel::IdleState;
-            if (channels[i].reply)
+            if (channels[i].reply) {
+
+                // if this is not possible, error will be emitted and connection terminated
+                if (!channels[i].resetUploadData())
+                    continue;
+
                 channels[i].sendRequest();
+            }
         }
     }