From: Christian Kamm Date: Thu, 17 Jan 2019 09:21:22 +0000 (+0100) Subject: SocketAPI: Remove listener immediately on lost connection X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~322 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=848b869cdf10fdd6c00ab1ad0d048ae1091cf64a;p=nextcloud-desktop.git SocketAPI: Remove listener immediately on lost connection To avoid situations where messages are attempted to be sent to dead connections. --- diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp index ac1aea1a2..a42033211 100644 --- a/src/gui/socketapi.cpp +++ b/src/gui/socketapi.cpp @@ -270,6 +270,10 @@ void SocketApi::onLostConnection() { qCInfo(lcSocketApi) << "Lost connection " << sender(); sender()->deleteLater(); + + auto socket = qobject_cast(sender()); + ASSERT(socket); + _listeners.erase(std::remove_if(_listeners.begin(), _listeners.end(), ListenerHasSocketPred(socket)), _listeners.end()); } void SocketApi::slotSocketDestroyed(QObject *obj)