From b7416e7478d0c6d614828f06e88c5745ecc9d02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Thu, 14 Sep 2023 16:04:14 -0400 Subject: [PATCH] jamiaccount: compute proper path for vcard sha3 Change-Id: I0c1a0f7a3238f45b3dcb69d0714b24b5d78eed52 --- src/jamidht/jamiaccount.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 59f99013d5..a0ae8e737e 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -2491,7 +2491,7 @@ JamiAccount::saveTreatedMessages() const if (auto sthis = w.lock()) { auto& this_ = *sthis; std::lock_guard<std::mutex> lock(this_.messageMutex_); - dhtnet::fileutils::check_dir(this_.cachePath_.c_str()); + dhtnet::fileutils::check_dir(this_.cachePath_); saveIdList<decltype(this_.treatedMessages_)>((this_.cachePath_ / "treatedMessages").string(), this_.treatedMessages_); } @@ -3700,27 +3700,25 @@ JamiAccount::needToSendProfile(const std::string& peerUri, const std::string& sha3Sum) { std::string previousSha3 {}; - auto vCardPath = fmt::format("{}/vcard", cachePath_); - auto sha3Path = fmt::format("{}/sha3", vCardPath); + auto vCardPath = cachePath_ / "vcard"; + auto sha3Path = vCardPath / "sha3"; dhtnet::fileutils::check_dir(vCardPath, 0700); try { previousSha3 = fileutils::loadTextFile(sha3Path); } catch (...) { - fileutils::saveFile(sha3Path, {sha3Sum.begin(), sha3Sum.end()}, 0600); + fileutils::saveFile(sha3Path.string(), (const uint8_t*)sha3Sum.data(), sha3Sum.size(), 0600); return true; } if (sha3Sum != previousSha3) { // Incorrect sha3 stored. Update it dhtnet::fileutils::removeAll(vCardPath, true); - dhtnet::fileutils::check_dir(vCardPath.c_str(), 0700); - dhtnet::fileutils::saveFile(sha3Path, {sha3Sum.begin(), sha3Sum.end()}, 0600); + dhtnet::fileutils::check_dir(vCardPath, 0700); + fileutils::saveFile(sha3Path.string(), (const uint8_t*)sha3Sum.data(), sha3Sum.size(), 0600); return true; } - dhtnet::fileutils::recursive_mkdir(fmt::format("{}/{}/", vCardPath, peerUri)); - - auto path = fmt::format("{}/{}/{}", vCardPath, peerUri, deviceId); - auto res = not std::filesystem::is_regular_file(path); - return res; + auto peerPath = vCardPath / peerUri; + dhtnet::fileutils::recursive_mkdir(peerPath); + return not std::filesystem::is_regular_file(peerPath / deviceId); } bool -- GitLab