From aed1e342b7414aecf9ea6e96f5ebec10594cc1f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Tue, 11 Feb 2020 15:36:08 -0500
Subject: [PATCH] jamiaccount: fix reply detection when multiple devices

Change-Id: I506a9e1649a683339dc9ebfaa1c18b0e9394bb20
---
 src/jamidht/jamiaccount.cpp | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 37f772b382..bda38c16f0 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -156,8 +156,7 @@ struct JamiAccount::PendingCall
 
 struct JamiAccount::PendingMessage
 {
-    dht::InfoHash to;
-    std::chrono::steady_clock::time_point received;
+    std::set<dht::InfoHash> to;
 };
 
 struct AccountPeerInfo
@@ -2498,8 +2497,7 @@ JamiAccount::sendTextMessage(const std::string& to, const std::map<std::string,
     {
         {
             std::lock_guard<std::mutex> lock(messageMutex_);
-            auto e = sentMessages_.emplace(token, PendingMessage {});
-            e.first->second.to = dev;
+            sentMessages_[token].to.emplace(dev);
         }
 
         auto h = dht::InfoHash::get("inbox:"+dev.toString());
@@ -2512,7 +2510,7 @@ JamiAccount::sendTextMessage(const std::string& to, const std::map<std::string,
             {
                 std::lock_guard<std::mutex> lock(messageMutex_);
                 auto e = sentMessages_.find(msg.id);
-                if (e == sentMessages_.end() or e->second.to != msg.from) {
+                if (e == sentMessages_.end() or e->second.to.find(msg.from) == e->second.to.end()) {
                     JAMI_DBG() << "[Account " << getAccountID() << "] [message " << token << "] Message not found";
                     return true;
                 }
-- 
GitLab