summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorAzat Khuzhin <a3at.mail@gmail.com>2013-05-09 16:43:18 +0400
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-10 20:06:26 +0200
commite08aca15ec91ce7d22873c3edde44c6acc27095b (patch)
treef7f04690d4c22ef42616392fb82f3aa0d494071e /src/network
parentd6d9edd7c47b183edc1acc631602ea4f4a885d84 (diff)
Add reconnect attempts in more cases in QHNCC.
Attempts on: - QAbstractSocket::ProxyConnectionTimeoutError - QAbstractSocket::ProxyConnectionClosedError (closed unexpectedly) Change-Id: I8e85288d724cb2f485f9e61d853dfaac5540032a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Markus Goetz <markus@woboq.com> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 4b8fe8aca7..5c537691e2 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -1171,6 +1171,22 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket
case QAbstractSocket::SslHandshakeFailedError:
errorCode = QNetworkReply::SslHandshakeFailedError;
break;
+ case QAbstractSocket::ProxyConnectionClosedError:
+ // try to reconnect/resend before sending an error.
+ if (reconnectAttempts-- > 0) {
+ closeAndResendCurrentRequest();
+ return;
+ }
+ errorCode = QNetworkReply::ProxyConnectionClosedError;
+ break;
+ case QAbstractSocket::ProxyConnectionTimeoutError:
+ // try to reconnect/resend before sending an error.
+ if (reconnectAttempts-- > 0) {
+ closeAndResendCurrentRequest();
+ return;
+ }
+ errorCode = QNetworkReply::ProxyTimeoutError;
+ break;
default:
// all other errors are treated as NetworkError
errorCode = QNetworkReply::UnknownNetworkError;