Refactored fingerprint file path logic #4525

This commit is contained in:
Nick Bolton 2015-04-20 15:58:11 +01:00
parent 36a6bb9218
commit 80fd3cc01b
3 changed files with 33 additions and 32 deletions

View File

@ -34,20 +34,9 @@ Fingerprint::Fingerprint(const QString& filename)
void Fingerprint::trust(const QString& fingerprintText) void Fingerprint::trust(const QString& fingerprintText)
{ {
CoreInterface coreInterface; Fingerprint::persistDirectory();
QString profileDir = coreInterface.getProfileDir();
QString dirName = QString("%1/%2") QFile file(filePath());
.arg(profileDir)
.arg(kDirName);
QDir dir(dirName);
if (!dir.exists()) {
dir.mkpath(".");
}
QString path = QString("%1/%2").arg(dirName).arg(m_Filename);
QFile file(path);
if (file.open(QIODevice::Append)) if (file.open(QIODevice::Append))
{ {
QTextStream out(&file); QTextStream out(&file);
@ -58,19 +47,12 @@ void Fingerprint::trust(const QString& fingerprintText)
bool Fingerprint::exists(const QString& fingerprintText) bool Fingerprint::exists(const QString& fingerprintText)
{ {
CoreInterface coreInterface; QString dirName = Fingerprint::directoryPath();
QString profileDir = coreInterface.getProfileDir();
QString dirName = QString("%1/%2")
.arg(profileDir)
.arg(kDirName);
if (!QDir(dirName).exists()) { if (!QDir(dirName).exists()) {
return false; return false;
} }
QString path = QString("%1/%2").arg(dirName).arg(m_Filename); QFile file(filePath());
QFile file(path);
if (file.open(QIODevice::ReadOnly)) if (file.open(QIODevice::ReadOnly))
{ {
@ -88,6 +70,30 @@ bool Fingerprint::exists(const QString& fingerprintText)
return false; return false;
} }
QString Fingerprint::filePath() const
{
QString dir = Fingerprint::directoryPath();
return QString("%1/%2").arg(dir).arg(m_Filename);
}
void Fingerprint::persistDirectory()
{
QDir dir(Fingerprint::directoryPath());
if (!dir.exists()) {
dir.mkpath(".");
}
}
QString Fingerprint::directoryPath()
{
CoreInterface coreInterface;
QString profileDir = coreInterface.getProfileDir();
return QString("%1/%2")
.arg(profileDir)
.arg(kDirName);
}
bool Fingerprint::localFingerprintExists() bool Fingerprint::localFingerprintExists()
{ {
CoreInterface coreInterface; CoreInterface coreInterface;

View File

@ -27,14 +27,16 @@ private:
public: public:
void trust(const QString& fingerprintText); void trust(const QString& fingerprintText);
bool exists(const QString& fingerprintText); bool exists(const QString& fingerprintText);
QString filePath() const;
public: public:
static Fingerprint local(); static Fingerprint local();
static Fingerprint trustedServers(); static Fingerprint trustedServers();
static Fingerprint trustedClients(); static Fingerprint trustedClients();
static QString directoryPath();
static QString localFingerprint(); static QString localFingerprint();
static bool localFingerprintExists(); static bool localFingerprintExists();
static void persistDirectory();
private: private:
QString m_Filename; QString m_Filename;

View File

@ -22,6 +22,7 @@
#include "DataDownloader.h" #include "DataDownloader.h"
#include "QUtility.h" #include "QUtility.h"
#include "ProcessorArch.h" #include "ProcessorArch.h"
#include "Fingerprint.h"
#include <QFile> #include <QFile>
#include <QDir> #include <QDir>
@ -40,8 +41,6 @@ static QString kCertificateLifetime = "365";
static QString kCertificateSubjectInfo = "/CN=Synergy"; static QString kCertificateSubjectInfo = "/CN=Synergy";
static QString kCertificateFilename = "Synergy.pem"; static QString kCertificateFilename = "Synergy.pem";
static QString kUnixOpenSslCommand = "openssl"; static QString kUnixOpenSslCommand = "openssl";
static const char kFingerprintDir[] = "ssl/fingerprints";
static const char kFingerprintLocalFilename[] = "local.txt";
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
static const char kWinPluginExt[] = ".dll"; static const char kWinPluginExt[] = ".dll";
@ -233,13 +232,7 @@ void PluginManager::generateCertificate()
// write the standard output into file // write the standard output into file
filename.clear(); filename.clear();
filename.append(m_ProfileDir); filename.append(Fingerprint::local().filePath());
filename.append(QDir::separator()).append(kFingerprintDir);
QDir dir(filename);
if (!dir.exists()) {
dir.mkpath(".");
}
filename.append(QDir::separator()).append(kFingerprintLocalFilename);
// only write the fingerprint part // only write the fingerprint part
int i = m_standardOutput.indexOf("="); int i = m_standardOutput.indexOf("=");