From: Manuel Nickschas Date: Fri, 22 Feb 2008 01:40:13 +0000 (+0000) Subject: This should fix core crash on exit on some *cough* systems. Not quite tested, thanks to X-Git-Tag: 0.2.0-alpha1~4 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=6228619e585e425d1e57e71a8817dec27df1edb8 This should fix core crash on exit on some *cough* systems. Not quite tested, thanks to Belgian beer. But when I really concentrate, I can almost see the Ballmer Peak down there... --- diff --git a/src/core/networkconnection.cpp b/src/core/networkconnection.cpp index 84eabeec..93568b04 100644 --- a/src/core/networkconnection.cpp +++ b/src/core/networkconnection.cpp @@ -245,15 +245,17 @@ void NetworkConnection::sendPerform() { } void NetworkConnection::disconnectFromIrc(bool requested) { - if(requested) { - _autoReconnectTimer.stop(); - _autoReconnectCount = 0; - } + _autoReconnectTimer.stop(); + _autoReconnectCount = 0; displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Disconnecting.")); if(socket.state() < QAbstractSocket::ConnectedState) { setConnectionState(Network::Disconnected); socketDisconnected(); } else socket.disconnectFromHost(); + + if(requested) { + emit quitRequested(networkId()); + } } void NetworkConnection::socketHasData() { @@ -314,8 +316,7 @@ void NetworkConnection::socketDisconnected() { _whoTimer.stop(); network()->setConnected(false); emit disconnected(networkId()); - if(_autoReconnectCount == 0) emit quitRequested(networkId()); - else { + if(_autoReconnectCount != 0) { setConnectionState(Network::Reconnecting); if(_autoReconnectCount == network()->autoReconnectRetries()) doAutoReconnect(); // first try is immediate else _autoReconnectTimer.start();