dovecot-2.2: imapc: Added imapc_features=gmail-pop3-uidl
dovecot at dovecot.org
dovecot at dovecot.org
Tue Jan 20 03:42:41 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/38c70f8ac3dd
changeset: 18185:38c70f8ac3dd
user: Timo Sirainen <tss at iki.fi>
date: Tue Jan 20 05:41:23 2015 +0200
description:
imapc: Added imapc_features=gmail-pop3-uidl
This allows imapc to generate GMail POP3 compatible UIDL so that
pop3-migration plugin isn't needed.
diffstat:
src/lib-storage/index/imapc/imapc-mail.c | 16 ++++++++++++++++
src/lib-storage/index/imapc/imapc-settings.c | 1 +
src/lib-storage/index/imapc/imapc-settings.h | 3 ++-
3 files changed, 19 insertions(+), 1 deletions(-)
diffs (57 lines):
diff -r ba0b94f11cea -r 38c70f8ac3dd src/lib-storage/index/imapc/imapc-mail.c
--- a/src/lib-storage/index/imapc/imapc-mail.c Tue Jan 20 04:46:51 2015 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail.c Tue Jan 20 05:41:23 2015 +0200
@@ -463,6 +463,8 @@
const char **value_r)
{
struct imapc_mailbox *mbox = (struct imapc_mailbox *)_mail->box;
+ struct index_mail *imail = (struct index_mail *)_mail;
+ uint64_t num;
switch (field) {
case MAIL_FETCH_GUID:
@@ -473,6 +475,20 @@
}
*value_r = "";
return imapc_mail_get_guid(_mail, value_r);
+ case MAIL_FETCH_UIDL_BACKEND:
+ if (!IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_GMAIL_POP3_UIDL))
+ break;
+ if (imapc_mail_get_guid(_mail, value_r) < 0)
+ return -1;
+ if (str_to_uint64(*value_r, &num) < 0) {
+ mail_storage_set_critical(_mail->box->storage,
+ "X-GM-MSGID not 64bit integer as expected for POP3 UIDL generation: %s", *value_r);
+ return -1;
+ }
+
+ *value_r = p_strdup_printf(imail->mail.data_pool, "GmailId%llx",
+ (unsigned long long)num);
+ return 0;
default:
break;
}
diff -r ba0b94f11cea -r 38c70f8ac3dd src/lib-storage/index/imapc/imapc-settings.c
--- a/src/lib-storage/index/imapc/imapc-settings.c Tue Jan 20 04:46:51 2015 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.c Tue Jan 20 05:41:23 2015 +0200
@@ -81,6 +81,7 @@
{ "guid-forced", IMAPC_FEATURE_GUID_FORCED },
{ "fetch-headers", IMAPC_FEATURE_FETCH_HEADERS },
{ "gmail-labels-keyword", IMAPC_FEATURE_GMAIL_LABELS_KEYWORD },
+ { "gmail-pop3-uidl", IMAPC_FEATURE_GMAIL_POP3_UIDL },
{ NULL, 0 }
};
diff -r ba0b94f11cea -r 38c70f8ac3dd src/lib-storage/index/imapc/imapc-settings.h
--- a/src/lib-storage/index/imapc/imapc-settings.h Tue Jan 20 04:46:51 2015 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.h Tue Jan 20 05:41:23 2015 +0200
@@ -6,7 +6,8 @@
IMAPC_FEATURE_RFC822_SIZE = 0x01,
IMAPC_FEATURE_GUID_FORCED = 0x02,
IMAPC_FEATURE_FETCH_HEADERS = 0x04,
- IMAPC_FEATURE_GMAIL_LABELS_KEYWORD = 0x08
+ IMAPC_FEATURE_GMAIL_LABELS_KEYWORD = 0x08,
+ IMAPC_FEATURE_GMAIL_POP3_UIDL = 0x10
};
/* </settings checks> */
More information about the dovecot-cvs
mailing list