From 21aaa6affb9f134112b75b5db737309fc35ef1cf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martti=20Rannanj=C3=A4rvi?= Date: Sat, 13 Aug 2016 01:51:32 +0300 Subject: [PATCH] lib-storage: rename get_real_mail to get_backend_mail Also change the function signature so that it returns an int to indicate success or failure. --- src/lib-storage/fail-mail.c | 8 +++++--- src/lib-storage/index/cydir/cydir-mail.c | 2 +- src/lib-storage/index/dbox-multi/mdbox-mail.c | 2 +- src/lib-storage/index/dbox-single/sdbox-mail.c | 2 +- src/lib-storage/index/imapc/imapc-mail.c | 2 +- src/lib-storage/index/index-mail.c | 6 ++++-- src/lib-storage/index/index-mail.h | 2 +- src/lib-storage/index/maildir/maildir-mail.c | 2 +- src/lib-storage/index/mbox/mbox-mail.c | 2 +- src/lib-storage/index/pop3c/pop3c-mail.c | 2 +- src/lib-storage/index/raw/raw-mail.c | 2 +- src/lib-storage/mail-storage-private.h | 5 +---- src/lib-storage/mail-storage.h | 3 --- src/lib-storage/mail.c | 15 +-------------- src/plugins/virtual/virtual-mail.c | 15 ++++++++------- 15 files changed, 28 insertions(+), 42 deletions(-) diff --git a/src/lib-storage/fail-mail.c b/src/lib-storage/fail-mail.c index 7e4d9f5cc6..6ac4c9b5e6 100644 --- a/src/lib-storage/fail-mail.c +++ b/src/lib-storage/fail-mail.c @@ -194,9 +194,11 @@ fail_mail_get_special(struct mail *mail ATTR_UNUSED, return -1; } -static struct mail * fail_mail_get_real_mail(struct mail *mail) +static int fail_mail_get_backend_mail(struct mail *mail, + struct mail **real_mail_r) { - return mail; + *real_mail_r = mail; + return 0; } static void @@ -256,7 +258,7 @@ struct mail_vfuncs fail_mail_vfuncs = { fail_mail_get_stream, fail_mail_get_binary_stream, fail_mail_get_special, - fail_mail_get_real_mail, + fail_mail_get_backend_mail, fail_mail_update_flags, fail_mail_update_keywords, fail_mail_update_modseq, diff --git a/src/lib-storage/index/cydir/cydir-mail.c b/src/lib-storage/index/cydir/cydir-mail.c index 3c3604272f..4b62ac405a 100644 --- a/src/lib-storage/index/cydir/cydir-mail.c +++ b/src/lib-storage/index/cydir/cydir-mail.c @@ -157,7 +157,7 @@ struct mail_vfuncs cydir_mail_vfuncs = { cydir_mail_get_stream, index_mail_get_binary_stream, index_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/dbox-multi/mdbox-mail.c b/src/lib-storage/index/dbox-multi/mdbox-mail.c index 8608a02ed7..b36e3828a6 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-mail.c +++ b/src/lib-storage/index/dbox-multi/mdbox-mail.c @@ -253,7 +253,7 @@ struct mail_vfuncs mdbox_mail_vfuncs = { dbox_mail_get_stream, index_mail_get_binary_stream, mdbox_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, mdbox_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/dbox-single/sdbox-mail.c b/src/lib-storage/index/dbox-single/sdbox-mail.c index 4f848f8b69..90c5334d73 100644 --- a/src/lib-storage/index/dbox-single/sdbox-mail.c +++ b/src/lib-storage/index/dbox-single/sdbox-mail.c @@ -162,7 +162,7 @@ struct mail_vfuncs sdbox_mail_vfuncs = { dbox_mail_get_stream, index_mail_get_binary_stream, sdbox_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/imapc/imapc-mail.c b/src/lib-storage/index/imapc/imapc-mail.c index a39d02f039..c29777cafe 100644 --- a/src/lib-storage/index/imapc/imapc-mail.c +++ b/src/lib-storage/index/imapc/imapc-mail.c @@ -603,7 +603,7 @@ struct mail_vfuncs imapc_mail_vfuncs = { imapc_mail_get_stream, index_mail_get_binary_stream, imapc_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/index-mail.c b/src/lib-storage/index/index-mail.c index 6eb9a1f322..3c5a542ca4 100644 --- a/src/lib-storage/index/index-mail.c +++ b/src/lib-storage/index/index-mail.c @@ -1459,9 +1459,11 @@ int index_mail_get_special(struct mail *_mail, } } -struct mail *index_mail_get_real_mail(struct mail *mail) +int index_mail_get_backend_mail(struct mail *mail, + struct mail **real_mail_r) { - return mail; + *real_mail_r = mail; + return 0; } struct mail * diff --git a/src/lib-storage/index/index-mail.h b/src/lib-storage/index/index-mail.h index 8a9c177a7a..7daf60837d 100644 --- a/src/lib-storage/index/index-mail.h +++ b/src/lib-storage/index/index-mail.h @@ -225,7 +225,7 @@ int index_mail_get_binary_stream(struct mail *_mail, struct istream **stream_r); int index_mail_get_special(struct mail *_mail, enum mail_fetch_field field, const char **value_r); -struct mail *index_mail_get_real_mail(struct mail *mail); +int index_mail_get_backend_mail(struct mail *mail, struct mail **real_mail_r); void index_mail_update_flags(struct mail *mail, enum modify_type modify_type, enum mail_flags flags); diff --git a/src/lib-storage/index/maildir/maildir-mail.c b/src/lib-storage/index/maildir/maildir-mail.c index 7dc5e3ec00..f968504ab0 100644 --- a/src/lib-storage/index/maildir/maildir-mail.c +++ b/src/lib-storage/index/maildir/maildir-mail.c @@ -792,7 +792,7 @@ struct mail_vfuncs maildir_mail_vfuncs = { maildir_mail_get_stream, index_mail_get_binary_stream, maildir_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/mbox/mbox-mail.c b/src/lib-storage/index/mbox/mbox-mail.c index 946b94d709..a3606f442b 100644 --- a/src/lib-storage/index/mbox/mbox-mail.c +++ b/src/lib-storage/index/mbox/mbox-mail.c @@ -438,7 +438,7 @@ struct mail_vfuncs mbox_mail_vfuncs = { mbox_mail_get_stream, index_mail_get_binary_stream, mbox_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/pop3c/pop3c-mail.c b/src/lib-storage/index/pop3c/pop3c-mail.c index 7db2c36329..388584a0d6 100644 --- a/src/lib-storage/index/pop3c/pop3c-mail.c +++ b/src/lib-storage/index/pop3c/pop3c-mail.c @@ -294,7 +294,7 @@ struct mail_vfuncs pop3c_mail_vfuncs = { pop3c_mail_get_stream, index_mail_get_binary_stream, pop3c_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/index/raw/raw-mail.c b/src/lib-storage/index/raw/raw-mail.c index dacf3ab792..5126839565 100644 --- a/src/lib-storage/index/raw/raw-mail.c +++ b/src/lib-storage/index/raw/raw-mail.c @@ -141,7 +141,7 @@ struct mail_vfuncs raw_mail_vfuncs = { raw_mail_get_stream, index_mail_get_binary_stream, raw_mail_get_special, - index_mail_get_real_mail, + index_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, diff --git a/src/lib-storage/mail-storage-private.h b/src/lib-storage/mail-storage-private.h index 44305a064e..c9a3261c14 100644 --- a/src/lib-storage/mail-storage-private.h +++ b/src/lib-storage/mail-storage-private.h @@ -461,10 +461,7 @@ struct mail_vfuncs { int (*get_special)(struct mail *mail, enum mail_fetch_field field, const char **value_r); - /* FIXME: v2.3 API should change this to return -1 on failure. - for now NULL means failure so we don't break backwards - compatibility. */ - struct mail *(*get_real_mail)(struct mail *mail); + int (*get_backend_mail)(struct mail *mail, struct mail **real_mail_r); void (*update_flags)(struct mail *mail, enum modify_type modify_type, enum mail_flags flags); diff --git a/src/lib-storage/mail-storage.h b/src/lib-storage/mail-storage.h index 06cbaeadce..f5c2dbaaef 100644 --- a/src/lib-storage/mail-storage.h +++ b/src/lib-storage/mail-storage.h @@ -889,9 +889,6 @@ int mail_get_special(struct mail *mail, enum mail_fetch_field field, /* Returns the mail for the physical message. Normally this is the mail itself, but in virtual mailboxes it points to the backend mailbox. */ int mail_get_backend_mail(struct mail *mail, struct mail **real_mail_r); -/* FIXME: For backwards compatibility for now, use mail_get_backend_mail() - instead. */ -struct mail *mail_get_real_mail(struct mail *mail); /* Update message flags. */ void mail_update_flags(struct mail *mail, enum modify_type modify_type, diff --git a/src/lib-storage/mail.c b/src/lib-storage/mail.c index 8c41a83a36..903feade58 100644 --- a/src/lib-storage/mail.c +++ b/src/lib-storage/mail.c @@ -342,20 +342,7 @@ int mail_get_special(struct mail *mail, enum mail_fetch_field field, int mail_get_backend_mail(struct mail *mail, struct mail **real_mail_r) { struct mail_private *p = (struct mail_private *)mail; - - *real_mail_r = p->v.get_real_mail(mail); - return *real_mail_r == NULL ? -1 : 0; -} - -struct mail *mail_get_real_mail(struct mail *mail) -{ - struct mail *backend_mail; - - if (mail_get_backend_mail(mail, &backend_mail) < 0) { - i_panic("FIXME: Error occurred in mail_get_real_mail(), " - "switch to using mail_get_backend_mail() instead"); - } - return backend_mail; + return p->v.get_backend_mail(mail, real_mail_r); } void mail_update_flags(struct mail *mail, enum modify_type modify_type, diff --git a/src/plugins/virtual/virtual-mail.c b/src/plugins/virtual/virtual-mail.c index 21e7519091..36aa9bcfde 100644 --- a/src/plugins/virtual/virtual-mail.c +++ b/src/plugins/virtual/virtual-mail.c @@ -450,17 +450,18 @@ virtual_mail_get_special(struct mail *mail, enum mail_fetch_field field, return 0; } -static struct mail *virtual_mail_get_real_mail(struct mail *mail) +static int virtual_mail_get_backend_mail(struct mail *mail, + struct mail **real_mail_r) { struct virtual_mail *vmail = (struct virtual_mail *)mail; - struct mail *backend_mail, *real_mail; + struct mail *backend_mail; if (backend_mail_get(vmail, &backend_mail) < 0) - return NULL; + return -1; - if (mail_get_backend_mail(backend_mail, &real_mail) < 0) - return NULL; - return real_mail; + if (mail_get_backend_mail(backend_mail, real_mail_r) < 0) + return -1; + return 0; } static void virtual_mail_update_pop3_uidl(struct mail *mail, const char *uidl) @@ -523,7 +524,7 @@ struct mail_vfuncs virtual_mail_vfuncs = { virtual_mail_get_stream, index_mail_get_binary_stream, virtual_mail_get_special, - virtual_mail_get_real_mail, + virtual_mail_get_backend_mail, index_mail_update_flags, index_mail_update_keywords, index_mail_update_modseq, -- 2.47.3