From: Manuel Nickschas Date: Wed, 15 Jul 2009 22:08:52 +0000 (+0200) Subject: Properly handle unlimited IRC reconnection retries X-Git-Tag: 0.4.3~6 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=08a3b942d11b6b6f5939e7c80e26c4a6cde7c785 Properly handle unlimited IRC reconnection retries Fixes #743. Also, do the first reconnect retry immediately after disconnect even with unlimited retries enabled. --- diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index b89c403a..40b47405 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -366,7 +366,7 @@ void CoreNetwork::socketDisconnected() { Core::setNetworkConnected(userId(), networkId(), false); } else if(_autoReconnectCount != 0) { setConnectionState(Network::Reconnecting); - if(_autoReconnectCount == autoReconnectRetries()) + if(_autoReconnectCount == -1 || _autoReconnectCount == autoReconnectRetries()) doAutoReconnect(); // first try is immediate else _autoReconnectTimer.start(); @@ -402,7 +402,7 @@ void CoreNetwork::networkInitialized() { if(useAutoReconnect()) { // reset counter - _autoReconnectCount = autoReconnectRetries(); + _autoReconnectCount = unlimitedReconnectRetries() ? -1 : autoReconnectRetries(); } // restore away state @@ -513,8 +513,8 @@ void CoreNetwork::doAutoReconnect() { qWarning() << "CoreNetwork::doAutoReconnect(): Cannot reconnect while not being disconnected!"; return; } - if(_autoReconnectCount > 0) - _autoReconnectCount--; + if(_autoReconnectCount > 0 || _autoReconnectCount == -1) + _autoReconnectCount--; // -2 means we delay the next reconnect connectToIrc(true); }