From 77bee2ddf3af50be240d4fd09414062220dcf6be Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Tue, 31 Mar 2026 10:24:59 +0100 Subject: [PATCH] feat(ipc): Log more detail on IPC error handling --- src/lib/deskflow/ipc/IpcServer.cpp | 2 +- src/lib/gui/ipc/IpcClient.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/deskflow/ipc/IpcServer.cpp b/src/lib/deskflow/ipc/IpcServer.cpp index 39c622add..71607bcc6 100644 --- a/src/lib/deskflow/ipc/IpcServer.cpp +++ b/src/lib/deskflow/ipc/IpcServer.cpp @@ -118,7 +118,7 @@ void IpcServer::processMessage(QLocalSocket *clientSocket, const QString &messag if (clientVersion != versionId) { LOG_ERR("%s ipc client version mismatch (server: %s)", m_typeName.constData(), versionId.toUtf8().constData()); - writeToClientSocket(clientSocket, "error"); + writeToClientSocket(clientSocket, QStringLiteral("error=version mismatch, expected: %1").arg(versionId)); clientSocket->flush(); clientSocket->disconnectFromServer(); return; diff --git a/src/lib/gui/ipc/IpcClient.cpp b/src/lib/gui/ipc/IpcClient.cpp index 19af227bc..700e216b1 100644 --- a/src/lib/gui/ipc/IpcClient.cpp +++ b/src/lib/gui/ipc/IpcClient.cpp @@ -163,6 +163,14 @@ void IpcClient::handleReadyRead() void IpcClient::handleHandshakeMessage(const QStringList &parts) { + if (parts.at(0) == "error") { + const auto detail = parts.size() >= 2 ? parts.at(1) : QString("unknown"); + qCritical().noquote() << m_typeName << "ipc server rejected connection:" << detail; + disconnectFromServer(); + Q_EMIT connectionFailed(); + return; + } + if (parts.at(0) != "hello") { return; }