Fixes #410 - away log (you'll find it in the views menu)
[quassel.git] / src / core / corenetwork.cpp
index ba152a4..f056183 100644 (file)
@@ -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);