changeset 8567:c6facf63c7f9 HEAD

Maildir: If POP3 UIDL field is empty in dovecot-uidlist, use base filename as UIDL.
author Timo Sirainen <tss@iki.fi>
date Thu, 18 Dec 2008 19:34:35 +0200
parents 1c462a3c21ba
children 935930abeb7a
files src/lib-storage/index/maildir/maildir-mail.c
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-mail.c	Thu Dec 18 18:11:21 2008 +0200
+++ b/src/lib-storage/index/maildir/maildir-mail.c	Thu Dec 18 19:34:35 2008 +0200
@@ -434,7 +434,16 @@
 	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);