From cc5897f3fab231a5661c60e76a0fa788b72d3dcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Thu, 21 Dec 2023 13:42:43 -0500
Subject: [PATCH] conversation_module: remove requests from self

This should not happen. Probably a relic of the past, but should be
removed.

Change-Id: Ic1506dc6b7e3e7ef75e743193e7606c46c53b662
---
 src/jamidht/conversation_module.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 75cac2d29e..5372378c19 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -1183,6 +1183,19 @@ ConversationModule::Impl::fixStructures(std::shared_ptr<JamiAccount> acc, const
                 }
             }
         }
+        auto requestRemoved = false;
+        for (auto it = conversationsRequests_.begin(); it != conversationsRequests_.end();) {
+            if (it->second.from == username_) {
+                JAMI_WARNING("Detected request from ourself, this makes no sense. Remove {}", it->first);
+                it = conversationsRequests_.erase(it);
+            } else {
+                ++it;
+            }
+        }
+        if (requestRemoved) {
+            saveConvRequests();
+        }
+
     }
     for (const auto& invalidPendingRequest : invalidPendingRequests)
         acc->discardTrustRequest(invalidPendingRequest);
@@ -2167,6 +2180,10 @@ ConversationModule::onSyncData(const SyncMsg& msg,
     }
 
     for (const auto& [convId, req] : msg.cr) {
+        if (req.from == pimpl_->username_) {
+            JAMI_WARNING("Detected request from ourself, ignore {}.", convId);
+            continue;
+        }
         if (pimpl_->isConversation(convId)) {
             // Already handled request
             pimpl_->rmConversationRequest(convId);
-- 
GitLab