cydir-storage.c revision 3b32bc12710240f86465a00fbb2bd1ef030e6c40
e59faf65ce864fe95dc00f5d52b8323cdbd0608aTimo Sirainen/* Copyright (c) 2007-2010 Dovecot authors, see the included COPYING file */
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainenstatic struct mail_storage *cydir_storage_alloc(void)
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen pool = pool_alloconly_create("cydir storage", 512+256);
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen storage = p_new(pool, struct cydir_storage, 1);
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainencydir_storage_get_list_settings(const struct mail_namespace *ns ATTR_UNUSED,
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen set->subscription_fname = CYDIR_SUBSCRIPTION_FILE_NAME;
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenstatic struct mailbox *
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainencydir_mailbox_alloc(struct mail_storage *storage, struct mailbox_list *list,
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen /* cydir can't work without index files */
3b32bc12710240f86465a00fbb2bd1ef030e6c40Timo Sirainen pool = pool_alloconly_create("cydir mailbox", 1024*3);
e5fd6dfd0a492e4708d4dbb7971d7fc5d7b8fd85Timo Sirainen index_storage_mailbox_alloc(&mbox->box, name, flags,
d22301419109ed4a38351715e6760011421dadecTimo Sirainen ibox->save_commit_pre = cydir_transaction_save_commit_pre;
d22301419109ed4a38351715e6760011421dadecTimo Sirainen ibox->save_commit_post = cydir_transaction_save_commit_post;
d22301419109ed4a38351715e6760011421dadecTimo Sirainen ibox->save_rollback = cydir_transaction_save_rollback;
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen mbox->storage = (struct cydir_storage *)storage;
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainenstatic int cydir_mailbox_open(struct mailbox *box)
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen /* exists, open it */
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen mail_storage_set_error(box->storage, MAIL_ERROR_NOTFOUND,
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen mail_storage_set_critical(box->storage, "stat(%s) failed: %m",
d22301419109ed4a38351715e6760011421dadecTimo Sirainen return index_storage_mailbox_open(box, FALSE);
17ad2164c747cedbf81dae1893063e71a3df0356Timo Sirainencydir_mailbox_create(struct mailbox *box, const struct mailbox_update *update,
3c493c276f599d9b9cd10764876d648003046954Timo Sirainen (box->list->props & MAILBOX_LIST_PROP_NO_NOSELECT) == 0)
f81f4bc282cd1944cec187bae89c0701a416ed2aTimo Sirainenstatic void cydir_notify_changes(struct mailbox *box)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen struct cydir_mailbox *mbox = (struct cydir_mailbox *)box;