]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dbox: Add dbox_storage_vfuncs.mail_file_set() vfunc
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 19 Jun 2023 21:10:53 +0000 (00:10 +0300)
committermarkus.valentin <markus.valentin@open-xchange.com>
Wed, 21 Jun 2023 11:26:19 +0000 (11:26 +0000)
src/lib-storage/index/dbox-common/dbox-storage.h
src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c
src/lib-storage/index/dbox-multi/mdbox-mail.c
src/lib-storage/index/dbox-multi/mdbox-storage.c
src/lib-storage/index/dbox-multi/mdbox-storage.h
src/lib-storage/index/dbox-single/sdbox-mail.c
src/lib-storage/index/dbox-single/sdbox-storage.c
src/lib-storage/index/dbox-single/sdbox-storage.h

index 144775d4f22f76306090c2d9173b23b98bbc0bfe..a6c4f7d8d1fe1b721bbd231adb115594b05d5917 100644 (file)
@@ -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);
index 26b8581aef14c3d09815e32b8d2695fbab4db913..17b68b3d65d149be64d8b8eaa0c0eaaf01c792fb 100644 (file)
@@ -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,
index 0ff31604df15e0f434997b0dd5df1f21834ede3a..68266db4453f2b380a73132128ec5f570077f81a 100644 (file)
@@ -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);
index 8fddf3190768a1edbb9283736a16f2b6a4e418f0..e9cf42deca2f05461731436483c53a825069b942 100644 (file)
@@ -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,
index ea995328033ebb53111faa7d1d4f6c80fb02392c..88a8b6f5d1b5b97d7d8728f86a7a668f77c42fc7 100644 (file)
@@ -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);
 
index 3b0352ca99b4d0e38ab5a6b0a2507f647c42e96d..4156658d9b8142a0a7ffd2d87ecdff1d3bc5733f 100644 (file)
@@ -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);
index 31e88749ec6e2acd45631564e97eaad6c8a2233e..ecdb207b930bf2e323dad23227345cc104264bcf 100644 (file)
@@ -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,
index 66d08daedc7e36b58ed55c100489326171b4b14a..020d8a3ce0cf3d89abf511ca02579c31d66e3430 100644 (file)
@@ -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);