From 0403306eed2d57d3d1c59b3fbbdae7320095d0e2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 27 Jun 2009 23:32:31 -0400 Subject: [PATCH] Fixed shared namespace initialization. --HG-- branch : HEAD --- src/lib-storage/mail-storage.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index 460312549e..09b5f410b4 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -168,6 +168,10 @@ mail_storage_create_root(struct mailbox_list *list, root_dir = mailbox_list_get_path(list, NULL, MAILBOX_LIST_PATH_TYPE_MAILBOX); + if (root_dir == NULL) { + /* storage doesn't use directories (e.g. shared root) */ + return 0; + } if (stat(root_dir, &st) == 0) { /* ok */ return 0; @@ -241,9 +245,12 @@ int mail_storage_create(struct mail_namespace *ns, const char *driver, } memset(&list_set, 0, sizeof(list_set)); - if (data == NULL) - data = ""; - else { + if (data == NULL) { + /* autodetect */ + } else if (driver != NULL && strcmp(driver, "shared") == 0) { + /* internal shared namespace */ + list_set.root_dir = ns->user->set->base_dir; + } else { if (driver == NULL) mail_storage_set_autodetection(&data, &driver); if (mailbox_list_settings_parse(data, &list_set, ns, -- 2.47.3