From 4a08c8061dcdf865ccde2f5f8ee71f167f3d4d92 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Mon, 9 Mar 2020 13:37:11 +0100 Subject: Fix messages to self being duplicated fixes #591 --- libdino/src/service/message_processor.vala | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'libdino') diff --git a/libdino/src/service/message_processor.vala b/libdino/src/service/message_processor.vala index 04518e72..fd719eda 100644 --- a/libdino/src/service/message_processor.vala +++ b/libdino/src/service/message_processor.vala @@ -451,10 +451,18 @@ public class MessageProcessor : StreamInteractionModule, Object { .with(db.message.stanza_id, "=", message.stanza_id) .with(db.message.counterpart_id, "=", db.get_jid_id(message.counterpart)) .with(db.message.account_id, "=", account.id); - if (message.counterpart.resourcepart != null) { - builder.with(db.message.counterpart_resource, "=", message.counterpart.resourcepart); - } else { - builder.with_null(db.message.counterpart_resource); + if (message.direction == Message.DIRECTION_RECEIVED) { + if (message.counterpart.resourcepart != null) { + builder.with(db.message.counterpart_resource, "=", message.counterpart.resourcepart); + } else { + builder.with_null(db.message.counterpart_resource); + } + } else if (message.direction == Message.DIRECTION_SENT) { + if (message.ourpart.resourcepart != null) { + builder.with(db.message.our_resource, "=", message.ourpart.resourcepart); + } else { + builder.with_null(db.message.our_resource); + } } RowOption row_opt = builder.single().row(); bool duplicate = row_opt.is_present(); -- cgit v1.2.3-54-g00ecf