dovecot-2.0: lib-storage: Removed mailbox_list_get_hierarchy_sep...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Aug 5 18:20:20 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/827ebadc5995
changeset: 11942:827ebadc5995
user: Timo Sirainen <tss at iki.fi>
date: Thu Aug 05 16:19:54 2010 +0100
description:
lib-storage: Removed mailbox_list_get_hierarchy_sep(). Its usage wasn't correct.
Especially with listescape plugin loaded the function was returning the
wrong separator. list->ns->real_sep should be used instead.
diffstat:
src/imap/cmd-subscribe.c | 6 +++---
src/imap/imap-commands-util.c | 4 +---
src/lib-storage/mail-namespace.c | 3 ++-
src/lib-storage/mailbox-list.c | 5 -----
src/lib-storage/mailbox-list.h | 1 -
src/plugins/acl/acl-backend-vfile.c | 5 ++---
6 files changed, 8 insertions(+), 16 deletions(-)
diffs (103 lines):
diff -r 415151aaa6de -r 827ebadc5995 src/imap/cmd-subscribe.c
--- a/src/imap/cmd-subscribe.c Thu Aug 05 16:18:00 2010 +0100
+++ b/src/imap/cmd-subscribe.c Thu Aug 05 16:19:54 2010 +0100
@@ -60,9 +60,9 @@
}
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;
diff -r 415151aaa6de -r 827ebadc5995 src/imap/imap-commands-util.c
--- a/src/imap/imap-commands-util.c Thu Aug 05 16:18:00 2010 +0100
+++ b/src/imap/imap-commands-util.c Thu Aug 05 16:19:54 2010 +0100
@@ -27,7 +27,6 @@
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);
@@ -47,11 +46,10 @@
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);
}
diff -r 415151aaa6de -r 827ebadc5995 src/lib-storage/mail-namespace.c
--- a/src/lib-storage/mail-namespace.c Thu Aug 05 16:18:00 2010 +0100
+++ b/src/lib-storage/mail-namespace.c Thu Aug 05 16:19:54 2010 +0100
@@ -4,6 +4,7 @@
#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"
@@ -29,7 +30,7 @@
/* 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)
diff -r 415151aaa6de -r 827ebadc5995 src/lib-storage/mailbox-list.c
--- a/src/lib-storage/mailbox-list.c Thu Aug 05 16:18:00 2010 +0100
+++ b/src/lib-storage/mailbox-list.c Thu Aug 05 16:19:54 2010 +0100
@@ -362,11 +362,6 @@
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;
diff -r 415151aaa6de -r 827ebadc5995 src/lib-storage/mailbox-list.h
--- a/src/lib-storage/mailbox-list.h Thu Aug 05 16:18:00 2010 +0100
+++ b/src/lib-storage/mailbox-list.h Thu Aug 05 16:19:54 2010 +0100
@@ -163,7 +163,6 @@
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 *
diff -r 415151aaa6de -r 827ebadc5995 src/plugins/acl/acl-backend-vfile.c
--- a/src/plugins/acl/acl-backend-vfile.c Thu Aug 05 16:18:00 2010 +0100
+++ b/src/plugins/acl/acl-backend-vfile.c Thu Aug 05 16:19:54 2010 +0100
@@ -186,11 +186,10 @@
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);
}
More information about the dovecot-cvs
mailing list