From 8b078de11fd2e4c7aba019941ecfe228de9b42b5 Mon Sep 17 00:00:00 2001 From: Andrea Gianarda <andrea.gianarda@belledonne-communications.com> Date: Wed, 30 Aug 2023 11:58:39 +0200 Subject: [PATCH] Fix address comparison to avoid the server from sending a message to the sender --- src/chat/chat-room/server-group-chat-room.cpp | 2 +- tester/local_chat_tester.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/chat/chat-room/server-group-chat-room.cpp b/src/chat/chat-room/server-group-chat-room.cpp index 7e5f6b9b6e..187af9fb1b 100644 --- a/src/chat/chat-room/server-group-chat-room.cpp +++ b/src/chat/chat-room/server-group-chat-room.cpp @@ -1165,7 +1165,7 @@ void ServerGroupChatRoomPrivate::queueMessage(const shared_ptr<Message> &msg) { for (const auto &participant : q->getParticipants()) { for (const auto &device : participant->getDevices()) { // Queue the message for all devices except the one that sent it - if (*msg->fromAddr != *device->getAddress()) { + if (!msg->fromAddr->weakEqual(*device->getAddress())) { queueMessage(msg, device->getAddress()); } } diff --git a/tester/local_chat_tester.cpp b/tester/local_chat_tester.cpp index 7c6b3049b9..e90bac0435 100644 --- a/tester/local_chat_tester.cpp +++ b/tester/local_chat_tester.cpp @@ -195,6 +195,12 @@ static void group_chat_room_server_deletion(void) { return linphone_chat_room_get_unread_messages_count(pauline2Cr) == 1; })); + BC_ASSERT_FALSE(wait_for_list(coresList, &marie.getStats().number_of_LinphoneMessageReceived, + initialMarieStats.number_of_LinphoneMessageReceived + 1, 3000)); + + BC_ASSERT_FALSE(wait_for_list(coresList, &marie.getStats().number_of_LinphoneAggregatedMessagesReceived, + initialMarieStats.number_of_LinphoneAggregatedMessagesReceived + 1, 3000)); + for (auto chatRoom : focus.getCore().getChatRooms()) { for (auto participant : chatRoom->getParticipants()) { // force deletion by removing devices -- GitLab