From e08aca15ec91ce7d22873c3edde44c6acc27095b Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Thu, 9 May 2013 16:43:18 +0400 Subject: Add reconnect attempts in more cases in QHNCC. Attempts on: - QAbstractSocket::ProxyConnectionTimeoutError - QAbstractSocket::ProxyConnectionClosedError (closed unexpectedly) Change-Id: I8e85288d724cb2f485f9e61d853dfaac5540032a Reviewed-by: Thiago Macieira Reviewed-by: Markus Goetz Reviewed-by: Peter Hartmann --- src/network/access/qhttpnetworkconnectionchannel.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/network') 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; -- cgit v1.2.3