changeset 11289:ed1a37587471 HEAD

imap: Added FETCH X-REAL-UID for getting physical mail's UID in a virtual mailbox.
author Timo Sirainen <tss@iki.fi>
date Wed, 12 May 2010 19:47:49 +0200
parents a6150ca30304
children fc664579ee4f
files src/imap/imap-fetch.c
diffstat 1 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-fetch.c	Wed May 12 19:47:26 2010 +0200
+++ b/src/imap/imap-fetch.c	Wed May 12 19:47:49 2010 +0200
@@ -814,6 +814,24 @@
 	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 @@
 	{ "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 }
 };