diff options
| author | Kali Kaneko <kali@leap.se> | 2013-12-20 16:36:21 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2013-12-20 16:36:39 -0400 | 
| commit | 90b3bdd9b7cee630defdba57eb178c881e3b1984 (patch) | |
| tree | c50246a14c17eab9ddde77b507fb011f6ba7f6e5 /mail/src | |
| parent | 81f9513ea4bef7828aed71afeb018a79bc3f1480 (diff) | |
safety catch against wrong last_uid
Diffstat (limited to 'mail/src')
| -rw-r--r-- | mail/src/leap/mail/imap/server.py | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/mail/src/leap/mail/imap/server.py b/mail/src/leap/mail/imap/server.py index f77bf2c..d92ab9d 100644 --- a/mail/src/leap/mail/imap/server.py +++ b/mail/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( | 
