X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.cpp;h=f05618385a0ed1833568042c314a0a7f5e38ad5f;hp=ba152a42ab9faf1842ca5e6e38d1adbf9c4f4f80;hb=453ccab6ade4a21c7aa3c331af893c91468250a4;hpb=97a4aeb939117264b6535856d07d474008c54da4 diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index ba152a42..f0561838 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -82,6 +82,8 @@ CoreNetwork::CoreNetwork(const NetworkId &networkid, CoreSession *session) CoreNetwork::~CoreNetwork() { if(connectionState() != Disconnected && connectionState() != Network::Reconnecting) disconnectFromIrc(false); // clean up, but this does not count as requested disconnect! + else + socket.close(); disconnect(&socket, 0, this, 0); // this keeps the socket from triggering events during clean up delete _ircServerHandler; delete _userInputHandler; @@ -406,7 +408,7 @@ void CoreNetwork::sendPerform() { // rejoin channels we've been in if(rejoinChannels()) { QStringList channels, keys; - foreach(QString chan, persistentChannels()) { + foreach(QString chan, coreSession()->persistentChannels(networkId()).keys()) { QString key = channelKey(chan); if(!key.isEmpty()) { channels.prepend(chan);