From b69db815a53dd19b2ea728d8ed7f344a7fadb4b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Fri, 22 Dec 2023 21:04:37 -0500
Subject: [PATCH] TransferManager: add accountUri to constructor

Change-Id: I4eaa3223dbe075fd64edbc127639673ee8aa1361
---
 src/data_transfer.cpp        | 8 +++++---
 src/data_transfer.h          | 2 +-
 src/jamidht/conversation.cpp | 1 +
 src/jamidht/jamiaccount.cpp  | 4 +++-
 4 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index e540c5eec3..d06464f24a 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -235,8 +235,9 @@ IncomingFile::process()
 class TransferManager::Impl
 {
 public:
-    Impl(const std::string& accountId, const std::string& to, const std::mt19937_64& rand)
+    Impl(const std::string& accountId, const std::string& accountUri, const std::string& to, const std::mt19937_64& rand)
         : accountId_(accountId)
+        , accountUri_(accountUri)
         , to_(to)
         , rand_(rand)
     {
@@ -280,6 +281,7 @@ public:
     }
 
     std::string accountId_ {};
+    std::string accountUri_ {};
     std::string to_ {};
     std::filesystem::path waitingPath_ {};
     std::filesystem::path profilesPath_ {};
@@ -294,8 +296,8 @@ public:
     std::mt19937_64 rand_;
 };
 
-TransferManager::TransferManager(const std::string& accountId, const std::string& to, const std::mt19937_64& rand)
-    : pimpl_ {std::make_unique<Impl>(accountId, to, rand)}
+TransferManager::TransferManager(const std::string& accountId, const std::string& accountUri, const std::string& to, const std::mt19937_64& rand)
+    : pimpl_ {std::make_unique<Impl>(accountId, accountUri, to, rand)}
 {}
 
 TransferManager::~TransferManager() {}
diff --git a/src/data_transfer.h b/src/data_transfer.h
index 133e3289d8..e6c75e65d4 100644
--- a/src/data_transfer.h
+++ b/src/data_transfer.h
@@ -123,7 +123,7 @@ private:
 class TransferManager : public std::enable_shared_from_this<TransferManager>
 {
 public:
-    TransferManager(const std::string& accountId, const std::string& to, const std::mt19937_64& rand);
+    TransferManager(const std::string& accountId, const std::string& accountUri, const std::string& to, const std::mt19937_64& rand);
     ~TransferManager();
 
     /**
diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp
index 88a493b3f4..9d03d56e26 100644
--- a/src/jamidht/conversation.cpp
+++ b/src/jamidht/conversation.cpp
@@ -176,6 +176,7 @@ public:
             swarmManager_->setMobility(shared->isMobile());
             accountId_ = shared->getAccountID();
             transferManager_ = std::make_shared<TransferManager>(shared->getAccountID(),
+                                                                 "",
                                                                  repository_->id(),
                                                                  Manager::instance().getSeededRandomEngine());
             conversationDataPath_ = fileutils::get_data_dir() / shared->getAccountID()
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index e91d613e27..ac7ebb7346 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -274,7 +274,7 @@ JamiAccount::JamiAccount(const std::string& accountId)
     , certStore_ {std::make_unique<dhtnet::tls::CertificateStore>(idPath_, Logger::dhtLogger())}
     , dht_(new dht::DhtRunner)
     , connectionManager_ {}
-    , nonSwarmTransferManager_(std::make_shared<TransferManager>(accountId, "", dht::crypto::getDerivedRandomEngine(rand)))
+    , nonSwarmTransferManager_()
 {}
 
 JamiAccount::~JamiAccount() noexcept
@@ -4217,6 +4217,8 @@ JamiAccount::askForProfile(const std::string& conversationId,
 void
 JamiAccount::initConnectionManager()
 {
+    if (!nonSwarmTransferManager_)
+        nonSwarmTransferManager_ = std::make_shared<TransferManager>(accountID_, config().username, "", dht::crypto::getDerivedRandomEngine(rand));
     if (!connectionManager_) {
         auto connectionManagerConfig = std::make_shared<dhtnet::ConnectionManager::Config>();
         connectionManagerConfig->ioContext = Manager::instance().ioContext();
-- 
GitLab