Already disconnect on Solid::Network::Disconnecting
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 9 Mar 2010 18:36:27 +0000 (19:36 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 9 Mar 2010 18:41:02 +0000 (19:41 +0100)
Not sure if this state is ever reached (as most solid disconnections occur after
the network is already down), but if it does, it gives us a chance to cleanly
take down the sockets etc. before being offline.

src/client/coreconnection.cpp

index 3bd59e0..8ad692e 100644 (file)
@@ -153,16 +153,16 @@ void CoreConnection::solidNetworkStatusChanged(Solid::Networking::Status status)
   switch(status) {
   case Solid::Networking::Unknown:
   case Solid::Networking::Connected:
-    qDebug() << "Solid: Network status changed to connected or unknown";
+    //qDebug() << "Solid: Network status changed to connected or unknown";
     if(state() == Disconnected) {
       if(_wantReconnect && s.autoReconnect()) {
         reconnectToCore();
       }
     }
     break;
+  case Solid::Networking::Disconnecting:
   case Solid::Networking::Unconnected:
-    qDebug() << "Solid: Disconnected";
-    if(!isLocalConnection())
+    if(state() != Disconnected && !isLocalConnection())
       disconnectFromCore(tr("Network is down"), true);
     break;
   default:
@@ -255,7 +255,7 @@ void CoreConnection::coreSocketError(QAbstractSocket::SocketError) {
 }
 
 void CoreConnection::coreSocketDisconnected() {
-  qDebug() << Q_FUNC_INFO;
+  // qDebug() << Q_FUNC_INFO;
   resetConnection(true);
   // FIXME handle disconnects gracefully
 }