From: Timo Sirainen Date: Mon, 19 Jun 2023 21:10:53 +0000 (+0300) Subject: dbox: Add dbox_storage_vfuncs.mail_file_set() vfunc X-Git-Tag: 2.4.0~2685 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59151752f1a61844b0eb06dbbc29428dfbc74615;p=thirdparty%2Fdovecot%2Fcore.git dbox: Add dbox_storage_vfuncs.mail_file_set() vfunc --- diff --git a/src/lib-storage/index/dbox-common/dbox-storage.h b/src/lib-storage/index/dbox-common/dbox-storage.h index 144775d4f2..a6c4f7d8d1 100644 --- a/src/lib-storage/index/dbox-common/dbox-storage.h +++ b/src/lib-storage/index/dbox-common/dbox-storage.h @@ -37,6 +37,8 @@ struct dbox_storage_vfuncs { if parents=TRUE, create the directory if necessary */ int (*file_create_fd)(struct dbox_file *file, const char *path, bool parents); + /* Initialize the mail file, but don't actually open it. */ + int (*mail_file_set)(struct dbox_mail *mail); /* open the mail and return its file/offset */ int (*mail_open)(struct dbox_mail *mail, uoff_t *offset_r, struct dbox_file **file_r); diff --git a/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c b/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c index 26b8581aef..17b68b3d65 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c +++ b/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c @@ -311,6 +311,7 @@ struct mailbox mdbox_deleted_mailbox = { struct dbox_storage_vfuncs mdbox_deleted_dbox_storage_vfuncs = { mdbox_file_unrefed, mdbox_file_create_fd, + mdbox_mail_file_set, mdbox_mail_open, mdbox_deleted_mailbox_create_indexes, mdbox_get_attachment_path_suffix, diff --git a/src/lib-storage/index/dbox-multi/mdbox-mail.c b/src/lib-storage/index/dbox-multi/mdbox-mail.c index 0ff31604df..68266db445 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-mail.c +++ b/src/lib-storage/index/dbox-multi/mdbox-mail.c @@ -91,7 +91,7 @@ static int dbox_mail_open_init(struct dbox_mail *mail, uint32_t map_uid) return 0; } -static int mdbox_mail_file_set(struct dbox_mail *mail) +int mdbox_mail_file_set(struct dbox_mail *mail) { struct mail *_mail = &mail->imail.mail.mail; struct mdbox_mailbox *mbox = MDBOX_MAILBOX(_mail->box); diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage.c b/src/lib-storage/index/dbox-multi/mdbox-storage.c index 8fddf31907..e9cf42deca 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage.c +++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c @@ -525,6 +525,7 @@ struct mailbox mdbox_mailbox = { struct dbox_storage_vfuncs mdbox_dbox_storage_vfuncs = { mdbox_file_unrefed, mdbox_file_create_fd, + mdbox_mail_file_set, mdbox_mail_open, mdbox_mailbox_create_indexes, mdbox_get_attachment_path_suffix, diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage.h b/src/lib-storage/index/dbox-multi/mdbox-storage.h index ea99532803..88a8b6f5d1 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage.h +++ b/src/lib-storage/index/dbox-multi/mdbox-storage.h @@ -70,6 +70,7 @@ struct mdbox_mailbox { extern struct dbox_storage_vfuncs mdbox_dbox_storage_vfuncs; extern struct mail_vfuncs mdbox_mail_vfuncs; +int mdbox_mail_file_set(struct dbox_mail *mail); int mdbox_mail_open(struct dbox_mail *mail, uoff_t *offset_r, struct dbox_file **file_r); diff --git a/src/lib-storage/index/dbox-single/sdbox-mail.c b/src/lib-storage/index/dbox-single/sdbox-mail.c index 3b0352ca99..4156658d9b 100644 --- a/src/lib-storage/index/dbox-single/sdbox-mail.c +++ b/src/lib-storage/index/dbox-single/sdbox-mail.c @@ -25,7 +25,7 @@ static void sdbox_mail_set_expunged(struct dbox_mail *mail) sdbox_set_mailbox_corrupted(_mail->box); } -static int sdbox_mail_file_set(struct dbox_mail *mail) +int sdbox_mail_file_set(struct dbox_mail *mail) { struct mail *_mail = &mail->imail.mail.mail; struct sdbox_mailbox *mbox = SDBOX_MAILBOX(_mail->box); diff --git a/src/lib-storage/index/dbox-single/sdbox-storage.c b/src/lib-storage/index/dbox-single/sdbox-storage.c index 31e88749ec..ecdb207b93 100644 --- a/src/lib-storage/index/dbox-single/sdbox-storage.c +++ b/src/lib-storage/index/dbox-single/sdbox-storage.c @@ -525,6 +525,7 @@ struct mailbox sdbox_mailbox = { struct dbox_storage_vfuncs sdbox_dbox_storage_vfuncs = { sdbox_file_free, sdbox_file_create_fd, + sdbox_mail_file_set, sdbox_mail_open, sdbox_mailbox_create_indexes, sdbox_get_attachment_path_suffix, diff --git a/src/lib-storage/index/dbox-single/sdbox-storage.h b/src/lib-storage/index/dbox-single/sdbox-storage.h index 66d08daedc..020d8a3ce0 100644 --- a/src/lib-storage/index/dbox-single/sdbox-storage.h +++ b/src/lib-storage/index/dbox-single/sdbox-storage.h @@ -38,6 +38,7 @@ struct sdbox_mailbox { extern struct mail_vfuncs sdbox_mail_vfuncs; +int sdbox_mail_file_set(struct dbox_mail *mail); int sdbox_mail_open(struct dbox_mail *mail, uoff_t *offset_r, struct dbox_file **file_r);