From 34b61cc8cde7d314ea458c883c60a128447de3e6 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 27 Feb 2025 12:11:54 -0500 Subject: [PATCH] fix: #8259 track a client and server list fixes 8259 --- src/apps/deskflow-gui/MainWindow.cpp | 18 ++++++++++++++---- src/apps/deskflow-gui/MainWindow.h | 3 ++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/apps/deskflow-gui/MainWindow.cpp b/src/apps/deskflow-gui/MainWindow.cpp index 25c969fa1..0bffe21c8 100644 --- a/src/apps/deskflow-gui/MainWindow.cpp +++ b/src/apps/deskflow-gui/MainWindow.cpp @@ -797,11 +797,18 @@ void MainWindow::checkFingerprint(const QString &line) deskflow::string::fromHex(sha256Text.toStdString()) }; - if (m_checkedPeers.contains(sha256Text)) { + const bool isClient = m_coreProcess.mode() == CoreMode::Client; + + if ((isClient && m_checkedServers.contains(sha256Text)) || (!isClient && m_checkedClients.contains(sha256Text))) { qDebug("ignoring fingerprint, already handled"); return; } - m_checkedPeers.append(sha256Text); + + if (isClient) { + m_checkedServers.append(sha256Text); + } else { + m_checkedClients.append(sha256Text); + } deskflow::FingerprintDatabase db; db.read(trustedFingerprintDb().toStdString()); @@ -811,7 +818,6 @@ void MainWindow::checkFingerprint(const QString &line) return; } - const bool isClient = m_coreProcess.mode() == CoreMode::Client; auto dialogMode = isClient ? FingerprintDialogMode::Client : FingerprintDialogMode::Server; FingerprintDialog fingerprintDialog(this, {sha1, sha256}, dialogMode); @@ -820,7 +826,11 @@ void MainWindow::checkFingerprint(const QString &line) if (fingerprintDialog.exec() == QDialog::Accepted) { db.addTrusted(sha256); db.write(trustedFingerprintDb().toStdString()); - m_checkedPeers.removeAll(sha256Text); + if (isClient) { + m_checkedServers.removeAll(sha256Text); + } else { + m_checkedClients.removeAll(sha256Text); + } } } diff --git a/src/apps/deskflow-gui/MainWindow.h b/src/apps/deskflow-gui/MainWindow.h index 8aa4d36bc..4e7a6fc2f 100644 --- a/src/apps/deskflow-gui/MainWindow.h +++ b/src/apps/deskflow-gui/MainWindow.h @@ -204,7 +204,8 @@ private: deskflow::gui::ClientConnection m_clientConnection; deskflow::gui::TlsUtility m_tlsUtility; QSize m_expandedSize = QSize(); - QStringList m_checkedPeers; + QStringList m_checkedClients; + QStringList m_checkedServers; QSystemTrayIcon *m_trayIcon = nullptr; QLocalServer *m_guiDupeChecker = nullptr;