From 1b660ad593cc5a3c3a21f34928333646596ef582 Mon Sep 17 00:00:00 2001
From: Pierre Lespagnol <pierre.lespagnol@savoirfairelinux.com>
Date: Wed, 18 Nov 2020 10:20:40 -0500
Subject: [PATCH] jamiaccount: cleanup username_

This patch adds a method to get current deviceId.

Change-Id: I5e57a8486ff052f01be16544f4ddc939ae55b31d
---
 src/jamidht/jamiaccount.cpp | 23 ++++++++++++++++-------
 src/jamidht/jamiaccount.h   |  2 ++
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 8a46a10347..47fe565ea8 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -741,9 +741,8 @@ bool
 JamiAccount::SIPStartCall(SIPCall& call, IpAddr target)
 {
     call.setupLocalSDPFromIce();
-    std::string toUri(
-        getToUri(call.getPeerNumber() + "@"
-                 + target.toString(true))); // expecting a fully well formed sip uri
+    std::string toUri(getToUri(call.getPeerNumber() + "@"
+                               + target.toString(true))); // expecting a fully well formed sip uri
 
     pj_str_t pjTo = sip_utils::CONST_PJ_STR(toUri);
 
@@ -1146,7 +1145,7 @@ JamiAccount::loadAccount(const std::string& archive_password,
                                                      std::move(callbacks))) {
             // normal loading path
             id_ = std::move(id);
-            username_ = RING_URI_PREFIX + info->accountId;
+            username_ = info->accountId;
             JAMI_WARN("[Account %s] loaded account identity", getAccountID().c_str());
             if (not isEnabled()) {
                 setRegistrationState(RegistrationState::UNREGISTERED);
@@ -1221,7 +1220,7 @@ JamiAccount::loadAccount(const std::string& archive_password,
                     id_ = std::move(id);
                     tlsPassword_ = {};
 
-                    username_ = RING_URI_PREFIX + info.accountId;
+                    username_ = info.accountId;
                     registeredName_ = managerUsername_;
                     ringDeviceName_ = accountManager_->getAccountDeviceName();
 
@@ -2851,7 +2850,9 @@ JamiAccount::matches(std::string_view userName, std::string_view server) const
     if (userName == accountManager_->getInfo()->accountId
         || server == accountManager_->getInfo()->accountId
         || userName == accountManager_->getInfo()->deviceId) {
-        JAMI_DBG("Matching account id in request with username %.*s", (int)userName.size(), userName.data());
+        JAMI_DBG("Matching account id in request with username %.*s",
+                 (int) userName.size(),
+                 userName.data());
         return MatchRank::FULL;
     } else {
         return MatchRank::NONE;
@@ -3363,7 +3364,7 @@ JamiAccount::getUserUri() const
     if (not registeredName_.empty())
         return RING_URI_PREFIX + registeredName_;
 #endif
-    return username_;
+    return RING_URI_PREFIX + username_;
 }
 
 std::vector<DRing::Message>
@@ -3805,4 +3806,12 @@ JamiAccount::cacheSIPConnection(std::shared_ptr<ChannelSocket>&& socket,
     });
 }
 
+std::string_view
+JamiAccount::currentDeviceId() const
+{
+    if (!accountManager_)
+        return {};
+    return accountManager_->getInfo()->deviceId;
+}
+
 } // namespace jami
diff --git a/src/jamidht/jamiaccount.h b/src/jamidht/jamiaccount.h
index 887ae866cc..163a25393e 100644
--- a/src/jamidht/jamiaccount.h
+++ b/src/jamidht/jamiaccount.h
@@ -437,6 +437,8 @@ public:
      */
     void shutdownConnections();
 
+    std::string_view currentDeviceId() const;
+
 private:
     NON_COPYABLE(JamiAccount);
 
-- 
GitLab