}
if ((cmd->client->set->parsed_workarounds &
- WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 &&
- *subs_name != '\0' && subs_name[strlen(subs_name)-1] ==
- mailbox_list_get_hierarchy_sep(ns->list)) {
+ WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 &&
+ *subs_name != '\0' &&
+ subs_name[strlen(subs_name)-1] == ns->real_sep) {
/* verify the validity without the trailing '/' */
mailbox = t_strndup(mailbox, strlen(mailbox)-1);
subs_name2 = subs_name;
struct mail_namespace *ns;
const char *storage_name, *p;
unsigned int storage_name_len;
- char sep;
storage_name = mailbox;
ns = mail_namespace_find(cmd->client->user->namespaces, &storage_name);
return NULL;
}
- sep = mailbox_list_get_hierarchy_sep(ns->list);
storage_name_len = strlen(storage_name);
if ((cmd->client->set->parsed_workarounds &
WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 &&
- storage_name[storage_name_len-1] == sep) {
+ storage_name[storage_name_len-1] == ns->real_sep) {
/* drop the extra trailing hierarchy separator */
storage_name = t_strndup(storage_name, storage_name_len-1);
}
#include "array.h"
#include "str.h"
#include "file-lock.h"
+#include "mailbox-list-private.h"
#include "mail-storage-private.h"
#include "mail-storage-settings.h"
#include "mail-namespace.h"
/* allow plugins to override real_sep */
if (ns->real_sep == '\0')
- ns->real_sep = mailbox_list_get_hierarchy_sep(list);
+ ns->real_sep = list->hierarchy_sep;
ns->prefix_len = strlen(ns->prefix);
if (ns->set->separator != NULL)
return list->name;
}
-char mailbox_list_get_hierarchy_sep(const struct mailbox_list *list)
-{
- return list->hierarchy_sep;
-}
-
enum mailbox_list_flags mailbox_list_get_flags(const struct mailbox_list *list)
{
return list->flags;
const char *
mailbox_list_get_driver_name(const struct mailbox_list *list) ATTR_PURE;
-char mailbox_list_get_hierarchy_sep(const struct mailbox_list *list) ATTR_PURE;
enum mailbox_list_flags
mailbox_list_get_flags(const struct mailbox_list *list) ATTR_PURE;
struct mail_namespace *
static const char *
get_parent_mailbox(struct acl_backend *backend, const char *name)
{
+ struct mail_namespace *ns = mailbox_list_get_namespace(backend->list);
const char *p;
- char sep;
- sep = mailbox_list_get_hierarchy_sep(backend->list);
- p = strrchr(name, sep);
+ p = strrchr(name, ns->real_sep);
return p == NULL ? NULL : t_strdup_until(name, p);
}