diff options
author | Azat Khuzhin <a3at.mail@gmail.com> | 2013-05-09 16:43:18 +0400 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-10 20:06:26 +0200 |
commit | e08aca15ec91ce7d22873c3edde44c6acc27095b (patch) | |
tree | f7f04690d4c22ef42616392fb82f3aa0d494071e /src/network | |
parent | d6d9edd7c47b183edc1acc631602ea4f4a885d84 (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.cpp | 16 |
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; |