]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Maildir: If POP3 UIDL field is empty in dovecot-uidlist, use base filename as UIDL.
authorTimo Sirainen <tss@iki.fi>
Thu, 18 Dec 2008 17:34:35 +0000 (19:34 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 18 Dec 2008 17:34:35 +0000 (19:34 +0200)
--HG--
branch : HEAD

src/lib-storage/index/maildir/maildir-mail.c

index c6449bbc20f2288c5e043f9ede6b4ed4d644f6b8..0143a79f0a90958a1d198e675cb3ff30de794fc9 100644 (file)
@@ -434,7 +434,16 @@ maildir_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
        case MAIL_FETCH_UIDL_BACKEND:
                uidl = maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
                                        MAILDIR_UIDLIST_REC_EXT_POP3_UIDL);
-               *value_r = uidl != NULL ? uidl : "";
+               if (uidl == NULL) {
+                       /* use the default */
+                       *value_r = "";
+               } else if (*uidl == '\0') {
+                       /* special optimization case: use the base file name */
+                       return maildir_mail_get_special(_mail,
+                                       MAIL_FETCH_UIDL_FILE_NAME, value_r);
+               } else {
+                       *value_r = uidl;
+               }
                return 0;
        default:
                return index_mail_get_special(_mail, field, value_r);