From: Timo Sirainen Date: Wed, 12 May 2010 17:47:49 +0000 (+0200) Subject: imap: Added FETCH X-REAL-UID for getting physical mail's UID in a virtual mailbox. X-Git-Tag: 2.0.beta6~241 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e9956754c88fcf31afe016c00a956cafb2c2864c;p=thirdparty%2Fdovecot%2Fcore.git imap: Added FETCH X-REAL-UID for getting physical mail's UID in a virtual mailbox. --HG-- branch : HEAD --- diff --git a/src/imap/imap-fetch.c b/src/imap/imap-fetch.c index 16464ec4fa..eeb33abceb 100644 --- a/src/imap/imap-fetch.c +++ b/src/imap/imap-fetch.c @@ -814,6 +814,24 @@ fetch_x_mailbox_init(struct imap_fetch_context *ctx ATTR_UNUSED, return TRUE; } +static int fetch_x_real_uid(struct imap_fetch_context *ctx, struct mail *mail, + void *context ATTR_UNUSED) +{ + str_printfa(ctx->cur_str, "X-REAL-UID %u ", + mail_get_real_mail(mail)->uid); + return 1; +} + +static bool +fetch_x_real_uid_init(struct imap_fetch_context *ctx ATTR_UNUSED, + const char *name, + const struct imap_arg **args ATTR_UNUSED) +{ + imap_fetch_add_handler(ctx, TRUE, FALSE, name, NULL, + fetch_x_real_uid, NULL); + return TRUE; +} + static int fetch_x_savedate(struct imap_fetch_context *ctx, struct mail *mail, void *context ATTR_UNUSED) { @@ -850,6 +868,7 @@ imap_fetch_default_handlers[] = { { "UID", fetch_uid_init }, { "X-GUID", fetch_guid_init }, { "X-MAILBOX", fetch_x_mailbox_init }, + { "X-REAL-UID", fetch_x_real_uid_init }, { "X-SAVEDATE", fetch_x_savedate_init } };