aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service
diff options
context:
space:
mode:
authorfiaxh <git@mx.ax.lt>2017-03-12 21:22:45 +0100
committerfiaxh <git@mx.ax.lt>2017-03-12 21:24:25 +0100
commit13cef27d46bb8c3c6a274983fc8569752fb69b5d (patch)
tree6ddde22c3c2b33a932eda8b0b8a7f4266b9db7f0 /libdino/src/service
parentc2643a45b0dc05c4fd82ec7d32577700dae7450e (diff)
downloaddino-13cef27d46bb8c3c6a274983fc8569752fb69b5d.tar.gz
dino-13cef27d46bb8c3c6a274983fc8569752fb69b5d.zip
Search messages having a uuid stanza id by id + account
Diffstat (limited to 'libdino/src/service')
-rw-r--r--libdino/src/service/database.vala3
-rw-r--r--libdino/src/service/message_manager.vala2
2 files changed, 3 insertions, 2 deletions
diff --git a/libdino/src/service/database.vala b/libdino/src/service/database.vala
index 885a1a8f..953fa0b1 100644
--- a/libdino/src/service/database.vala
+++ b/libdino/src/service/database.vala
@@ -293,9 +293,10 @@ public class Database : Qlite.Database {
.count() > 0;
}
- public bool contains_message_by_stanza_id(string stanza_id) {
+ public bool contains_message_by_stanza_id(string stanza_id, Account account) {
return message.select()
.with(message.stanza_id, "=", stanza_id)
+ .with(message.account_id, "=", account.id)
.count() > 0;
}
diff --git a/libdino/src/service/message_manager.vala b/libdino/src/service/message_manager.vala
index b24aa12d..9f87c932 100644
--- a/libdino/src/service/message_manager.vala
+++ b/libdino/src/service/message_manager.vala
@@ -115,7 +115,7 @@ public class MessageManager : StreamInteractionModule, Object {
pre_message_received(new_message, message, conversation);
bool is_uuid = new_message.stanza_id != null && Regex.match_simple("""[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}""", new_message.stanza_id);
- if ((is_uuid && !db.contains_message_by_stanza_id(new_message.stanza_id)) ||
+ if ((is_uuid && !db.contains_message_by_stanza_id(new_message.stanza_id, conversation.account)) ||
(!is_uuid && !db.contains_message(new_message, conversation.account))) {
db.add_message(new_message, conversation.account);
add_message(new_message, conversation);