From 59b5a2174cc4049d89e0b2dccf76ad39c2156833 Mon Sep 17 00:00:00 2001 From: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Date: Thu, 25 Jul 2024 16:13:32 -0400 Subject: [PATCH] JamiAccount: consume credentials from config GitLab: #1028 Change-Id: Ie1f6055c9d117e02538b2dfce5525d8ba15a06a2 --- src/jamidht/jamiaccount.cpp | 9 +++++---- src/jamidht/jamiaccount.h | 6 ++++++ src/jamidht/jamiaccount_config.cpp | 10 +++++----- src/jamidht/jamiaccount_config.h | 10 ++++++---- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 97db9b72cc..cb1b3a5639 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -936,10 +936,11 @@ JamiAccount::loadConfig() std::error_code ec; std::filesystem::remove(cachePath_ / "dhtproxy", ec); } - loadAccount(config().archive_password_scheme, - config().archive_password, - config().archive_pin, - config().archive_path); + auto credentials = consumeConfigCredentials(); + loadAccount(credentials.archive_password_scheme, + credentials.archive_password, + credentials.archive_pin, + credentials.archive_path); } bool diff --git a/src/jamidht/jamiaccount.h b/src/jamidht/jamiaccount.h index 347deb409a..09d72334b4 100644 --- a/src/jamidht/jamiaccount.h +++ b/src/jamidht/jamiaccount.h @@ -133,6 +133,12 @@ public: return *static_cast<const JamiAccountConfig*>(&Account::config()); } + JamiAccountConfig::Credentials + consumeConfigCredentials() { + auto conf = static_cast<JamiAccountConfig*>(config_.get()); + return std::move(conf->credentials); + } + void loadConfig() override; /** diff --git a/src/jamidht/jamiaccount_config.cpp b/src/jamidht/jamiaccount_config.cpp index 552d2f66b6..aa841b267c 100644 --- a/src/jamidht/jamiaccount_config.cpp +++ b/src/jamidht/jamiaccount_config.cpp @@ -207,11 +207,11 @@ JamiAccountConfig::fromMap(const std::map<std::string, std::string>& details) parseBool(details, libjami::Account::ConfProperties::DHT::PUBLIC_IN_CALLS, dhtPublicInCalls); // parseString(details, libjami::Account::ConfProperties::USERNAME, username); - parseString(details, libjami::Account::ConfProperties::ARCHIVE_PASSWORD, archive_password); - parseString(details, libjami::Account::ConfProperties::ARCHIVE_PASSWORD_SCHEME, archive_password_scheme); - parseString(details, libjami::Account::ConfProperties::ARCHIVE_PIN, archive_pin); - std::transform(archive_pin.begin(), archive_pin.end(), archive_pin.begin(), ::toupper); - parseString(details, libjami::Account::ConfProperties::ARCHIVE_PATH, archive_path); + parseString(details, libjami::Account::ConfProperties::ARCHIVE_PASSWORD, credentials.archive_password); + parseString(details, libjami::Account::ConfProperties::ARCHIVE_PASSWORD_SCHEME, credentials.archive_password_scheme); + parseString(details, libjami::Account::ConfProperties::ARCHIVE_PIN, credentials.archive_pin); + std::transform(credentials.archive_pin.begin(), credentials.archive_pin.end(), credentials.archive_pin.begin(), ::toupper); + parseString(details, libjami::Account::ConfProperties::ARCHIVE_PATH, credentials.archive_path); parseString(details, libjami::Account::ConfProperties::DEVICE_NAME, deviceName); auto oldProxyServer = proxyServer, oldProxyServerList = proxyListUrl; diff --git a/src/jamidht/jamiaccount_config.h b/src/jamidht/jamiaccount_config.h index 6fbda16cd8..4cbb5a4818 100644 --- a/src/jamidht/jamiaccount_config.h +++ b/src/jamidht/jamiaccount_config.h @@ -69,10 +69,12 @@ struct JamiAccountConfig : public SipAccountBaseConfig { std::string archivePath {"archive.gz"}; bool archiveHasPassword {true}; // not saved, only used client->daemon - std::string archive_password_scheme; - std::string archive_password; - std::string archive_pin; - std::string archive_path; + struct Credentials { + std::string archive_password_scheme; + std::string archive_password; + std::string archive_pin; + std::string archive_path; + } credentials; std::string receipt {}; std::vector<uint8_t> receiptSignature {}; -- GitLab