It obsoletes mail_storage_get_driver_settings().
struct mdbox_storage *storage = (struct mdbox_storage *)_storage;
const char *dir;
- storage->set = mail_storage_get_driver_settings(_storage);
+ storage->set = mail_namespace_get_driver_settings(ns, _storage);
storage->preallocate_space = storage->set->mdbox_preallocate_space;
if (*ns->list->set.mailbox_dir_name == '\0') {
struct imapc_storage *storage = (struct imapc_storage *)_storage;
struct imapc_mailbox_list *imapc_list = NULL;
- storage->set = mail_storage_get_driver_settings(_storage);
+ storage->set = mail_namespace_get_driver_settings(ns, _storage);
/* serialize all the settings */
_storage->unique_root_dir = p_strdup_printf(_storage->pool,
struct mailbox_list *list = ns->list;
const char *dir;
- storage->set = mail_storage_get_driver_settings(_storage);
+ storage->set = mail_namespace_get_driver_settings(ns, _storage);
storage->temp_prefix = p_strdup(_storage->pool,
mailbox_list_get_temp_prefix(list));
mlist = p_new(list->pool, struct maildir_mailbox_list_context, 1);
mlist->module_ctx.super = list->v;
- mlist->set = mail_storage_get_driver_settings(storage);
+ mlist->set = mail_namespace_get_driver_settings(list->ns, storage);
list->v.is_internal_name = maildir_is_internal_name;
MODULE_CONTEXT_SET(list, maildir_mailbox_list_module, mlist);
return -1;
}
- storage->set = mail_storage_get_driver_settings(_storage);
+ storage->set = mail_namespace_get_driver_settings(ns, _storage);
if (mailbox_list_get_root_path(ns->list, MAILBOX_LIST_PATH_TYPE_INDEX, &dir)) {
_storage->temp_path_prefix = p_strconcat(_storage->pool, dir,
mlist = p_new(list->pool, struct mbox_mailbox_list, 1);
mlist->module_ctx.super = list->v;
- mlist->set = mail_storage_get_driver_settings(storage);
+ mlist->set = mail_namespace_get_driver_settings(list->ns, storage);
if (strcmp(list->name, MAILBOX_LIST_NAME_FS) == 0 &&
*list->set.maildir_name == '\0') {
static int
pop3c_storage_create(struct mail_storage *_storage,
- struct mail_namespace *ns ATTR_UNUSED,
+ struct mail_namespace *ns,
const char **error_r)
{
struct pop3c_storage *storage = (struct pop3c_storage *)_storage;
- storage->set = mail_storage_get_driver_settings(_storage);
+ storage->set = mail_namespace_get_driver_settings(ns, _storage);
if (storage->set->pop3c_host[0] == '\0') {
*error_r = "missing pop3c_host";
return -1;
storage->name);
}
+const void *mail_namespace_get_driver_settings(struct mail_namespace *ns,
+ struct mail_storage *storage)
+{
+ return mail_user_set_get_driver_settings(storage->user->set_info,
+ ns->user_set, storage->name);
+}
+
const struct dynamic_settings_parser *
mail_storage_get_dynamic_parsers(pool_t pool)
{
#define MAIL_STORAGE_SET_DRIVER_NAME "MAIL"
struct mail_user;
+struct mail_namespace;
struct mail_storage;
struct mail_storage_settings {
mail_user_set_get_driver_settings(const struct setting_parser_info *info,
const struct mail_user_settings *set,
const char *driver);
+
const struct mail_storage_settings *
mail_user_set_get_storage_set(struct mail_user *user);
+/* Get storage-specific settings, which may be namespace-specific. */
+const void *mail_namespace_get_driver_settings(struct mail_namespace *ns,
+ struct mail_storage *storage);
+/* FIXME: Obsolete - remove in v2.3 */
const void *mail_storage_get_driver_settings(struct mail_storage *storage);
const struct dynamic_settings_parser *