]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
virtual: Fail with proper error if list layout is not 'fs'
authorMarco Bettini <marco.bettini@open-xchange.com>
Thu, 12 Feb 2026 15:39:08 +0000 (15:39 +0000)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 3 Mar 2026 14:16:20 +0000 (14:16 +0000)
rather than failing later with hard to interpret messages

src/plugins/virtual/virtual-storage.c

index d5433968b2848ca653af00b377ccf306f46f3f34..585c8b910e0faa1cae2504d2dd9fde6aef9e3408 100644 (file)
@@ -90,6 +90,16 @@ virtual_storage_create(struct mail_storage *_storage,
                       struct mail_namespace *ns ATTR_UNUSED,
                       const char **error_r)
 {
+       const char *layout = ns->list->name;
+       static const char *EXPECTED_LAYOUT = "fs";
+       if (strcasecmp(layout, EXPECTED_LAYOUT) != 0) {
+               *error_r = t_strdup_printf(
+                       "mailbox_list_layout: '%s', "
+                       "but it must be '%s' on virtual storages",
+                       layout, EXPECTED_LAYOUT);
+               return -1;
+       }
+
        struct virtual_storage *storage =
                container_of(_storage, struct virtual_storage, storage);
        const struct virtual_settings *set;