From 3823bce04eaa4ae3dc7b55c813186b9d5227388b Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Sat, 18 May 2013 11:24:38 +0200 Subject: [PATCH] Connection should be able to shutdown even if the socket already disappeared --- src/libtomahawk/network/Connection.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/network/Connection.cpp b/src/libtomahawk/network/Connection.cpp index 620d5a182..1e02d15b2 100644 --- a/src/libtomahawk/network/Connection.cpp +++ b/src/libtomahawk/network/Connection.cpp @@ -311,15 +311,20 @@ Connection::doSetup() void Connection::socketDisconnected() { + qint64 bytesAvailable = 0; + if ( !m_sock.isNull() ) + { + bytesAvailable = m_sock->bytesAvailable(); + } tDebug( LOGVERBOSE ) << "SOCKET DISCONNECTED" << this->name() << id() << "shutdown will happen after incoming queue empties." - << "bytesavail:" << m_sock->bytesAvailable() + << "bytesavail:" << bytesAvailable << "bytesRecvd" << bytesReceived(); m_peer_disconnected = true; emit socketClosed(); - if ( m_msgprocessor_in.length() == 0 && m_sock->bytesAvailable() == 0 ) + if ( m_msgprocessor_in.length() == 0 && bytesAvailable == 0 ) { handleIncomingQueueEmpty(); actualShutdown();