]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_storage_vfuncs.autodetect() - Add mail_storage_settings parameter
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 15 Nov 2023 21:03:32 +0000 (23:03 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:11 +0000 (12:34 +0200)
src/lib-storage/index/dbox-multi/mdbox-storage.c
src/lib-storage/index/dbox-single/sdbox-storage.c
src/lib-storage/index/maildir/maildir-storage.c
src/lib-storage/index/mbox/mbox-storage.c
src/lib-storage/mail-storage-private.h
src/lib-storage/mail-storage.c

index 5106deaa95eccf2d16fc0b76d3a4c59d8c2ec4fc..ca367c5335f07aca6ec76d43b706eb3964774bfa 100644 (file)
@@ -115,8 +115,10 @@ mdbox_storage_find_root_dir(const struct mail_namespace *ns)
        return NULL;
 }
 
-static bool mdbox_storage_autodetect(const struct mail_namespace *ns,
-                                    struct mailbox_list_settings *set)
+static bool
+mdbox_storage_autodetect(const struct mail_namespace *ns,
+                        struct mailbox_list_settings *set,
+                        const struct mail_storage_settings *mail_set ATTR_UNUSED)
 {
        struct event *event = ns->user->event;
        struct stat st;
index 8d3a03e87c0bdc1654ad7bf5726161217313d5fb..c8d23fb0c04515e0741a724e15666a91b32f4080 100644 (file)
@@ -77,8 +77,10 @@ sdbox_storage_find_root_dir(const struct mail_namespace *ns)
        return NULL;
 }
 
-static bool sdbox_storage_autodetect(const struct mail_namespace *ns,
-                                    struct mailbox_list_settings *set)
+static bool
+sdbox_storage_autodetect(const struct mail_namespace *ns,
+                        struct mailbox_list_settings *set,
+                        const struct mail_storage_settings *mail_set ATTR_UNUSED)
 {
        struct event *event = ns->user->event;
        struct stat st;
index 974c0821ba2ffb6c5ad3b90f0b13b90f00695532..73db6f3f84b6b911608a930bdf9d44a3fdb6e37d 100644 (file)
@@ -131,8 +131,10 @@ maildir_storage_find_root_dir(const struct mail_namespace *ns)
        return NULL;
 }
 
-static bool maildir_storage_autodetect(const struct mail_namespace *ns,
-                                      struct mailbox_list_settings *set)
+static bool
+maildir_storage_autodetect(const struct mail_namespace *ns,
+                          struct mailbox_list_settings *set,
+                          const struct mail_storage_settings *mail_set ATTR_UNUSED)
 {
        struct event *event = ns->user->event;
        struct stat st;
index aca00b2c998ec4d3354678975efa5590b1475457..ed572f132bda5b29fca0fb338eb36faf49882a0e 100644 (file)
@@ -326,8 +326,10 @@ mbox_storage_find_inbox_file(struct mail_user *user, struct event *event)
        return NULL;
 }
 
-static bool mbox_storage_autodetect(const struct mail_namespace *ns,
-                                   struct mailbox_list_settings *set)
+static bool
+mbox_storage_autodetect(const struct mail_namespace *ns,
+                       struct mailbox_list_settings *set,
+                       const struct mail_storage_settings *mail_set ATTR_UNUSED)
 {
        struct event *event = ns->user->event;
        const char *root_dir, *inbox_path;
index 26baaddb632c08f7ce2343d676fd2841905b0d0d..69af3b547ef9a955d4cedf4ba5606aa2fb4dbfb5 100644 (file)
@@ -62,7 +62,8 @@ struct mail_storage_vfuncs {
                                  struct mailbox_list_settings *set,
                                  const struct mail_storage_settings *mail_set);
        bool (*autodetect)(const struct mail_namespace *ns,
-                          struct mailbox_list_settings *set);
+                          struct mailbox_list_settings *set,
+                          const struct mail_storage_settings *mail_set);
 
        struct mailbox *(*mailbox_alloc)(struct mail_storage *storage,
                                         struct mailbox_list *list,
index 8492dff5dd3b1b958c41db40ffadd41061063e7f..c01d83b5964282c54d66caccdd75c8b89b5d4e75 100644 (file)
@@ -140,7 +140,8 @@ struct mail_storage *mail_storage_find_class(const char *name)
 
 static struct mail_storage *
 mail_storage_autodetect(const struct mail_namespace *ns,
-                       struct mailbox_list_settings *set)
+                       struct mailbox_list_settings *set,
+                       const struct mail_storage_settings *mail_set)
 {
        struct mail_storage *const *classes;
        unsigned int i, count;
@@ -148,7 +149,7 @@ mail_storage_autodetect(const struct mail_namespace *ns,
        classes = array_get(&mail_storage_classes, &count);
        for (i = 0; i < count; i++) {
                if (classes[i]->v.autodetect != NULL) {
-                       if (classes[i]->v.autodetect(ns, set))
+                       if (classes[i]->v.autodetect(ns, set, mail_set))
                                return classes[i];
                }
        }
@@ -222,7 +223,7 @@ mail_storage_get_class(struct mail_namespace *ns, const char *driver,
        if (storage_class != NULL)
                return storage_class;
 
-       storage_class = mail_storage_autodetect(ns, list_set);
+       storage_class = mail_storage_autodetect(ns, list_set, mail_set);
        if (storage_class != NULL)
                return storage_class;