]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Add default implementation for mailbox_list_vfuncs.get_storage()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 2 Mar 2022 22:56:58 +0000 (17:56 -0500)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Wed, 6 Jul 2022 20:51:20 +0000 (20:51 +0000)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/list/mailbox-list-fs.c
src/lib-storage/list/mailbox-list-index-backend.c
src/lib-storage/list/mailbox-list-maildir.c
src/lib-storage/list/mailbox-list-none.c
src/lib-storage/mailbox-list-private.h
src/lib-storage/mailbox-list.c

index 5ecf6faf91408c50b130075999b979d373bf25e0..c3d1ac1edd099049dbd1c18e14f093ce4a5f94ab 100644 (file)
@@ -990,6 +990,7 @@ struct mailbox_list imapc_mailbox_list = {
                .alloc = imapc_list_alloc,
                .init = imapc_list_init,
                .deinit = imapc_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = imapc_list_get_hierarchy_sep,
                .get_vname = imapc_list_get_vname,
                .get_storage_name = imapc_list_get_storage_name,
index 0948dcd367ba1214816a5b08c8652f481dfcdf70..b3dde69f31d5ffa2e3eb1a91bc1b410125f05224 100644 (file)
@@ -554,6 +554,7 @@ struct mailbox_list fs_mailbox_list = {
        .v = {
                .alloc = fs_list_alloc,
                .deinit = fs_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = fs_list_get_hierarchy_sep,
                .get_vname = mailbox_list_default_get_vname,
                .get_storage_name = mailbox_list_default_get_storage_name,
index 21657b9eba9049abf11ef0afe791bb1b69a0bab5..4ae85bf110898893dfb9495df2f2afb286559639 100644 (file)
@@ -944,6 +944,7 @@ struct mailbox_list index_mailbox_list = {
                .alloc = index_list_alloc,
                .init = index_list_init,
                .deinit = index_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = index_list_get_hierarchy_sep,
                .get_vname = mailbox_list_default_get_vname,
                .get_storage_name = mailbox_list_default_get_storage_name,
index 265f3d072b2078948bcf2eae3219475c49608270..c02f5d6d0e89b55061d0d54a446909b756ad628a 100644 (file)
@@ -498,6 +498,7 @@ struct mailbox_list maildir_mailbox_list = {
        .v = {
                .alloc = maildir_list_alloc,
                .deinit = maildir_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = maildir_list_get_hierarchy_sep,
                .get_vname = mailbox_list_default_get_vname,
                .get_storage_name = mailbox_list_default_get_storage_name,
@@ -527,6 +528,7 @@ struct mailbox_list imapdir_mailbox_list = {
        .v = {
                .alloc = imapdir_list_alloc,
                .deinit = maildir_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = maildir_list_get_hierarchy_sep,
                .get_vname = mailbox_list_default_get_vname,
                .get_storage_name = mailbox_list_default_get_storage_name,
index fb5c608e046220cb602b94f5cd3b0672d2efe247..748957eeab6a513bb4b8ef9340cee8d63efca8db 100644 (file)
@@ -159,6 +159,7 @@ struct mailbox_list none_mailbox_list = {
        .v = {
                .alloc = none_list_alloc,
                .deinit = none_list_deinit,
+               .get_storage = mailbox_list_default_get_storage,
                .get_hierarchy_sep = none_list_get_hierarchy_sep,
                .get_vname = mailbox_list_default_get_vname,
                .get_storage_name = mailbox_list_default_get_storage_name,
index 7f85e49c1160f614421e79d277afdafa8ce9cf81..909d62b79bc4d3dc1096db88b71d915252e6d2a8 100644 (file)
@@ -198,6 +198,10 @@ const char *
 mailbox_list_unescape_name_params(const char *src, const char *ns_prefix,
                                  char ns_sep, char list_sep, char escape_char);
 
+int mailbox_list_default_get_storage(struct mailbox_list **list,
+                                    const char **vname,
+                                    enum mailbox_list_get_storage_flags flags,
+                                    struct mail_storage **storage_r);
 const char *mailbox_list_default_get_storage_name(struct mailbox_list *list,
                                                  const char *vname);
 const char *mailbox_list_default_get_vname(struct mailbox_list *list,
index f6ced9c84400559dbd5dd386f748cee42b4cc9ed..c68475ff3e705cf74ce40d030fb27a9c2341c317 100644 (file)
@@ -889,15 +889,13 @@ mailbox_list_get_storage_driver(struct mailbox_list *list, const char *driver,
        return 0;
 }
 
-int mailbox_list_get_storage(struct mailbox_list **list, const char **vname,
-                            enum mailbox_list_get_storage_flags flags,
-                            struct mail_storage **storage_r)
+int mailbox_list_default_get_storage(struct mailbox_list **list,
+                                    const char **vname,
+                                    enum mailbox_list_get_storage_flags flags ATTR_UNUSED,
+                                    struct mail_storage **storage_r)
 {
        const struct mailbox_settings *set;
 
-       if ((*list)->v.get_storage != NULL)
-               return (*list)->v.get_storage(list, vname, flags, storage_r);
-
        set = mailbox_settings_find((*list)->ns, *vname);
        if (set != NULL && set->driver != NULL && set->driver[0] != '\0') {
                return mailbox_list_get_storage_driver(*list, set->driver,
@@ -907,6 +905,13 @@ int mailbox_list_get_storage(struct mailbox_list **list, const char **vname,
        return 0;
 }
 
+int mailbox_list_get_storage(struct mailbox_list **list, const char **vname,
+                            enum mailbox_list_get_storage_flags flags,
+                            struct mail_storage **storage_r)
+{
+       return (*list)->v.get_storage(list, vname, flags, storage_r);
+}
+
 void mailbox_list_get_default_storage(struct mailbox_list *list,
                                      struct mail_storage **storage)
 {