Skip to content

Commit 0bfe7ac

Browse files
committed
SocketAPI: Remove listener immediately on lost connection
To avoid situations where messages are attempted to be sent to dead connections.
1 parent d83485e commit 0bfe7ac

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/gui/socketapi.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,10 @@ void SocketApi::onLostConnection()
264264
{
265265
qCInfo(lcSocketApi) << "Lost connection " << sender();
266266
sender()->deleteLater();
267+
268+
auto socket = qobject_cast<QIODevice *>(sender());
269+
ASSERT(socket);
270+
_listeners.erase(std::remove_if(_listeners.begin(), _listeners.end(), ListenerHasSocketPred(socket)), _listeners.end());
267271
}
268272

269273
void SocketApi::slotSocketDestroyed(QObject *obj)

0 commit comments

Comments
 (0)