Mercurial > dovecot > core-2.2
changeset 13596:b7e58d26393f
lib-storage: mailbox_get_metadata() no longer always opens mailbox.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 02 Oct 2011 20:06:58 +0300 |
parents | c2a173716500 |
children | 341174c093ee |
files | src/lib-storage/index/dbox-multi/mdbox-storage.c src/lib-storage/index/dbox-single/sdbox-storage.c src/lib-storage/index/imapc/imapc-storage.c src/lib-storage/index/index-status.c src/lib-storage/index/maildir/maildir-storage.c src/lib-storage/index/mbox/mbox-storage.c src/lib-storage/mail-storage.c src/plugins/virtual/virtual-storage.c |
diffstat | 8 files changed, 24 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-multi/mdbox-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -330,11 +330,13 @@ { struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box; + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; if ((items & MAILBOX_METADATA_GUID) != 0) { if (mdbox_mailbox_get_guid(mbox, metadata_r->guid) < 0) return -1; } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static int
--- a/src/lib-storage/index/dbox-single/sdbox-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/dbox-single/sdbox-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -271,11 +271,13 @@ { struct sdbox_mailbox *mbox = (struct sdbox_mailbox *)box; + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; if ((items & MAILBOX_METADATA_GUID) != 0) { memcpy(metadata_r->guid, mbox->mailbox_guid, sizeof(metadata_r->guid)); } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static int
--- a/src/lib-storage/index/imapc/imapc-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -604,12 +604,14 @@ enum mailbox_metadata_items items, struct mailbox_metadata *metadata_r) { + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; if ((items & MAILBOX_METADATA_GUID) != 0) { /* a bit ugly way to do this, but better than nothing for now. FIXME: if indexes are enabled, keep this there. */ mail_generate_guid_128_hash(box->name, metadata_r->guid); } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static void imapc_idle_timeout(struct imapc_mailbox *mbox)
--- a/src/lib-storage/index/index-status.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/index-status.c Sun Oct 02 20:06:58 2011 +0300 @@ -263,6 +263,11 @@ enum mailbox_metadata_items items, struct mailbox_metadata *metadata_r) { + if (!box->opened) { + if (mailbox_open(box) < 0) + return -1; + } + if ((items & MAILBOX_METADATA_VIRTUAL_SIZE) != 0) { if (get_metadata_virtual_size(box, metadata_r) < 0) return -1;
--- a/src/lib-storage/index/maildir/maildir-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/maildir/maildir-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -480,12 +480,15 @@ { struct maildir_mailbox *mbox = (struct maildir_mailbox *)box; + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; + if ((items & MAILBOX_METADATA_GUID) != 0) { if (maildir_uidlist_get_mailbox_guid(mbox->uidlist, metadata_r->guid) < 0) return -1; } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static void maildir_mailbox_close(struct mailbox *box)
--- a/src/lib-storage/index/mbox/mbox-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/index/mbox/mbox-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -628,11 +628,13 @@ { struct mbox_mailbox *mbox = (struct mbox_mailbox *)box; + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; if ((items & MAILBOX_METADATA_GUID) != 0) { if (mbox_mailbox_get_guid(mbox, metadata_r->guid) < 0) return -1; } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static void mbox_notify_changes(struct mailbox *box)
--- a/src/lib-storage/mail-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/lib-storage/mail-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -1214,10 +1214,6 @@ { memset(metadata_r, 0, sizeof(*metadata_r)); - if (!box->opened) { - if (mailbox_open(box) < 0) - return -1; - } if (box->v.get_metadata(box, items, metadata_r) < 0) return -1;
--- a/src/plugins/virtual/virtual-storage.c Sun Oct 02 20:05:23 2011 +0300 +++ b/src/plugins/virtual/virtual-storage.c Sun Oct 02 20:06:58 2011 +0300 @@ -363,12 +363,14 @@ enum mailbox_metadata_items items, struct mailbox_metadata *metadata_r) { + if (index_mailbox_get_metadata(box, items, metadata_r) < 0) + return -1; if ((items & MAILBOX_METADATA_GUID) != 0) { mail_storage_set_error(box->storage, MAIL_ERROR_NOTPOSSIBLE, "Virtual mailboxes have no GUIDs"); return -1; } - return index_mailbox_get_metadata(box, items, metadata_r); + return 0; } static void