summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/leap/mail/imap/server.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/leap/mail/imap/server.py b/src/leap/mail/imap/server.py
index f77bf2c..d92ab9d 100644
--- a/src/leap/mail/imap/server.py
+++ b/src/leap/mail/imap/server.py
@@ -1430,7 +1430,22 @@ class SoledadMailbox(WithMsgFields):
leap_assert(isinstance(uid, int), "uid has to be int")
mbox = self._get_mbox()
key = self.LAST_UID_KEY
- mbox.content[key] = uid
+
+ count = mbox.getMessageCount()
+
+ # XXX safety-catch. If we do get duplicates,
+ # we want to avoid further duplication.
+
+ if uid >= count:
+ value = uid
+ else:
+ # something is wrong,
+ # just set the last uid
+ # beyond the max msg count.
+ logger.debug("WRONG uid < count. Setting last uid to ", count)
+ value = count
+
+ mbox.content[key] = value
self._soledad.put_doc(mbox)
last_uid = property(