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