diff --git a/src/chat/chat-room/server-group-chat-room.cpp b/src/chat/chat-room/server-group-chat-room.cpp index 7e5f6b9b6ee4e395b1f630d53eda9f24e01795ba..187af9fb1bed0b702ca30098afbc4f3728b5f24e 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 7c6b3049b92e0b6110467682cca5c27d8754b240..e90bac043560edd078a4f1f4e113aaa5e72ed9e8 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