From 4687ea8d79081dcd4b796c33eb585b8247c1d1c0 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 7 May 2021 16:33:07 -0700 Subject: [PATCH] Treat no returned messages on FetchMessagesFrom as a compelte sync --- storage/message_store.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/storage/message_store.go b/storage/message_store.go index 75de602..b53ea09 100644 --- a/storage/message_store.go +++ b/storage/message_store.go @@ -56,7 +56,7 @@ func (s SqliteMessageStore) FetchMessages() []*groups.EncryptedGroupMessage { func (s SqliteMessageStore) FetchMessagesFrom(signature []byte) []*groups.EncryptedGroupMessage { // If signature is empty then treat this as a complete sync request - if len(signature) == 0 || signature == nil { + if signature == nil || len(signature) == 0 { return s.FetchMessages() } @@ -86,6 +86,13 @@ func (s *SqliteMessageStore) compileRows(rows *sql.Rows) []*groups.EncryptedGrou Ciphertext: rawCiphertext, }) } + + // if we don't have *any* messages then either the signature next existed + // or the server purged it...either way treat this as a full sync... + if len(messages) < 1 { + return s.FetchMessages() + } + return messages }