From b7f29d76c3056f02a620eec6db518225fae821ff Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Mon, 17 Mar 2025 21:18:37 -0400 Subject: [PATCH] refactor: use new Setting::tlsDir() method to return current tlsdir where needed --- src/apps/deskflow-gui/MainWindow.cpp | 9 ++------- src/apps/deskflow-gui/MainWindow.h | 2 -- src/lib/common/Settings.cpp | 7 ++++++- src/lib/common/Settings.h | 1 + src/lib/gui/tls/TlsCertificate.cpp | 9 ++------- src/lib/gui/tls/TlsCertificate.h | 1 - src/lib/net/SecureSocket.cpp | 8 ++++---- 7 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/apps/deskflow-gui/MainWindow.cpp b/src/apps/deskflow-gui/MainWindow.cpp index 5c9e29993..999f53e48 100644 --- a/src/apps/deskflow-gui/MainWindow.cpp +++ b/src/apps/deskflow-gui/MainWindow.cpp @@ -1143,21 +1143,16 @@ void MainWindow::setHostName() applyConfig(); } -QString MainWindow::getTlsPath() -{ - return QStringLiteral("%1/%2").arg(Settings::settingsPath(), kTlsDirName); -} - QString MainWindow::localFingerprintDb() { - return QStringLiteral("%1/%2").arg(getTlsPath(), kTlsFingerprintLocalFilename); + return QStringLiteral("%1/%2").arg(Settings::tlsDir(), kTlsFingerprintLocalFilename); } QString MainWindow::trustedFingerprintDb() { const bool isClient = m_coreProcess.mode() == CoreMode::Client; const auto trustFile = isClient ? kTlsFingerprintTrustedServersFilename : kTlsFingerprintTrustedClientsFilename; - return QStringLiteral("%1/%2").arg(getTlsPath(), trustFile); + return QStringLiteral("%1/%2").arg(Settings::tlsDir(), trustFile); } bool MainWindow::regenerateLocalFingerprints() diff --git a/src/apps/deskflow-gui/MainWindow.h b/src/apps/deskflow-gui/MainWindow.h index 501ba64ac..d97af9852 100644 --- a/src/apps/deskflow-gui/MainWindow.h +++ b/src/apps/deskflow-gui/MainWindow.h @@ -161,8 +161,6 @@ private: void showHostNameEditor(); void setHostName(); - QString getTlsPath(); - /** * @brief localFingerprintDb * @return The path to the local fingerprint file diff --git a/src/lib/common/Settings.cpp b/src/lib/common/Settings.cpp index 3d2e620db..20f15ff51 100644 --- a/src/lib/common/Settings.cpp +++ b/src/lib/common/Settings.cpp @@ -90,7 +90,7 @@ QVariant Settings::defaultValue(const QString &key) return QRect(); if (key == Security::Certificate) - return QStringLiteral("%1/%2/%3").arg(instance()->settingsPath(), kTlsDirName, kTlsCertificateFilename); + return QStringLiteral("%1/%2").arg(instance()->tlsDir(), kTlsCertificateFilename); if (key == Security::KeySize) return 2048; @@ -161,6 +161,11 @@ const QString Settings::settingsPath() return QFileInfo(instance()->m_settings->fileName()).absolutePath(); } +const QString Settings::tlsDir() +{ + return QStringLiteral("%1/%2").arg(instance()->settingsPath(), kTlsDirName); +} + void Settings::setValue(const QString &key, const QVariant &value) { if (instance()->m_settings->value(key) == value) diff --git a/src/lib/common/Settings.h b/src/lib/common/Settings.h index 63e556989..a37172afd 100644 --- a/src/lib/common/Settings.h +++ b/src/lib/common/Settings.h @@ -141,6 +141,7 @@ public: static bool isWritable(); static const QString settingsFile(); static const QString settingsPath(); + static const QString tlsDir(); static const QString logLevelText(); static QSettingsProxy &proxy(); static void save(bool emitSaving = true); diff --git a/src/lib/gui/tls/TlsCertificate.cpp b/src/lib/gui/tls/TlsCertificate.cpp index 7e2720053..f09a7ce3f 100644 --- a/src/lib/gui/tls/TlsCertificate.cpp +++ b/src/lib/gui/tls/TlsCertificate.cpp @@ -55,7 +55,7 @@ bool TlsCertificate::generateFingerprint(const QString &certificateFilename) deskflow::FingerprintDatabase db; db.addTrusted(deskflow::pemFileCertFingerprint(certPath, deskflow::FingerprintType::SHA1)); db.addTrusted(deskflow::pemFileCertFingerprint(certPath, deskflow::FingerprintType::SHA256)); - db.write(QStringLiteral("%1/%2").arg(getTlsDir(), kTlsFingerprintLocalFilename).toStdString()); + db.write(QStringLiteral("%1/%2").arg(Settings::tlsDir(), kTlsFingerprintLocalFilename).toStdString()); qDebug("tls fingerprint generated"); return true; @@ -72,12 +72,7 @@ int TlsCertificate::getCertKeyLength(const QString &path) QString TlsCertificate::getCertificatePath() const { - return QStringLiteral("%1/%2/%3").arg(Settings::settingsPath(), kTlsDirName, kTlsCertificateFilename); -} - -QString TlsCertificate::getTlsDir() const -{ - return QStringLiteral("%1/%2").arg(Settings::settingsPath(), kTlsDirName); + return QStringLiteral("%1/%2").arg(Settings::tlsDir(), kTlsCertificateFilename); } bool TlsCertificate::isCertificateValid(const QString &path) diff --git a/src/lib/gui/tls/TlsCertificate.h b/src/lib/gui/tls/TlsCertificate.h index 877b773fe..9e1f2b9a8 100644 --- a/src/lib/gui/tls/TlsCertificate.h +++ b/src/lib/gui/tls/TlsCertificate.h @@ -21,5 +21,4 @@ public: bool generateFingerprint(const QString &certificateFilename); int getCertKeyLength(const QString &path); QString getCertificatePath() const; - QString getTlsDir() const; }; diff --git a/src/lib/net/SecureSocket.cpp b/src/lib/net/SecureSocket.cpp index 35b1d1a0a..d28cd6c53 100644 --- a/src/lib/net/SecureSocket.cpp +++ b/src/lib/net/SecureSocket.cpp @@ -13,7 +13,7 @@ #include "base/Path.h" #include "base/String.h" #include "base/TMethodEventJob.h" -#include "common/constants.h" +#include "common/Settings.h" #include "mt/Lock.h" #include "net/FingerprintDatabase.h" #include "net/TCPSocket.h" @@ -449,7 +449,7 @@ int SecureSocket::secureAccept(int socket) if (retry == 0) { if (m_securityLevel == SecurityLevel::PeerAuth) { std::string dbDir = deskflow::string::sprintf( - "%s/%s/%s", ARCH->getProfileDirectory().c_str(), kTlsDirName, kTlsFingerprintTrustedClientsFilename + "%s/%s", Settings::tlsDir().toStdString().c_str(), kTlsFingerprintTrustedClientsFilename ); if (!verifyCertFingerprint(dbDir)) { retry = 0; @@ -481,7 +481,7 @@ int SecureSocket::secureConnect(int socket) { std::string certDir = - deskflow::string::sprintf("%s/%s/%s", ARCH->getProfileDirectory().c_str(), kTlsDirName, kTlsCertificateFilename); + deskflow::string::sprintf("%s/%s", Settings::tlsDir().toStdString().c_str(), kTlsCertificateFilename); if (!loadCertificates(certDir)) { LOG((CLOG_ERR "could not load client certificates")); @@ -525,7 +525,7 @@ int SecureSocket::secureConnect(int socket) // No error, set ready, process and return ok m_secureReady = true; std::string dbDir = deskflow::string::sprintf( - "%s/%s/%s", ARCH->getProfileDirectory().c_str(), kTlsDirName, kTlsFingerprintTrustedServersFilename + "%s/%s", Settings::tlsDir().toStdString().c_str(), kTlsFingerprintTrustedServersFilename ); if (verifyCertFingerprint(dbDir)) { LOG((CLOG_INFO "connected to secure socket"));