dovecot-2.0: listescape: Crashfix for some configurations.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Aug 9 19:39:25 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/ed61aee681b8
changeset: 11967:ed61aee681b8
user: Timo Sirainen <tss at iki.fi>
date: Mon Aug 09 17:39:04 2010 +0100
description:
listescape: Crashfix for some configurations.
diffstat:
src/plugins/listescape/listescape-plugin.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diffs (85 lines):
diff -r 3f5c53f84d0a -r ed61aee681b8 src/plugins/listescape/listescape-plugin.c
--- a/src/plugins/listescape/listescape-plugin.c Mon Aug 09 17:35:08 2010 +0100
+++ b/src/plugins/listescape/listescape-plugin.c Mon Aug 09 17:39:04 2010 +0100
@@ -42,10 +42,9 @@
&mailbox_list_module_register);
static const char *
-list_escape(struct mail_namespace *ns, const char *str, bool vname)
+list_escape(struct listescape_mailbox_list *mlist,
+ struct mail_namespace *ns, const char *str, bool vname)
{
- struct listescape_mailbox_list *mlist =
- LIST_ESCAPE_LIST_CONTEXT(ns->list);
string_t *esc = t_str_new(64);
unsigned int i;
@@ -133,6 +132,7 @@
const char *const *patterns,
enum mailbox_list_iter_flags flags)
{
+ struct listescape_mailbox_list *mlist = LIST_ESCAPE_LIST_CONTEXT(list);
struct mail_namespace *orig_ns;
const char **escaped_patterns;
unsigned int i;
@@ -148,7 +148,8 @@
} else {
orig_ns = list->ns;
}
- escaped_patterns[i] = list_escape(orig_ns, patterns[i], TRUE);
+ escaped_patterns[i] = list_escape(mlist, orig_ns,
+ patterns[i], TRUE);
}
return escaped_patterns;
}
@@ -259,9 +260,10 @@
const char *name, enum mailbox_flags flags)
{
struct listescape_mail_storage *mstorage = LIST_ESCAPE_CONTEXT(storage);
+ struct listescape_mailbox_list *mlist = LIST_ESCAPE_LIST_CONTEXT(list);
if (list->hierarchy_sep != list->ns->sep)
- name = list_escape(list->ns, name, FALSE);
+ name = list_escape(mlist, list->ns, name, FALSE);
return mstorage->module_ctx.super.
mailbox_alloc(storage, list, name, flags);
}
@@ -275,9 +277,9 @@
ns = listescape_find_orig_ns(list->ns, name);
if (ns == list->ns || strncmp(ns->prefix, name, ns->prefix_len) != 0)
- name = list_escape(ns, name, FALSE);
+ name = list_escape(mlist, ns, name, FALSE);
else {
- esc_name = list_escape(ns, name + ns->prefix_len, FALSE);
+ esc_name = list_escape(mlist, ns, name + ns->prefix_len, FALSE);
name = t_strconcat(ns->prefix, esc_name, NULL);
}
return mlist->module_ctx.super.set_subscribed(list, name, set);
@@ -289,7 +291,7 @@
{
struct listescape_mailbox_list *mlist = LIST_ESCAPE_LIST_CONTEXT(list);
- name = list_escape(list->ns, name, FALSE);
+ name = list_escape(mlist, list->ns, name, FALSE);
return mlist->module_ctx.super.
get_mailbox_name_status(list, name, status);
}
@@ -299,7 +301,7 @@
{
struct listescape_mailbox_list *mlist = LIST_ESCAPE_LIST_CONTEXT(list);
- name = list_escape(list->ns, name, FALSE);
+ name = list_escape(mlist, list->ns, name, FALSE);
return mlist->module_ctx.super.is_valid_existing_name(list, name);
}
@@ -308,7 +310,7 @@
{
struct listescape_mailbox_list *mlist = LIST_ESCAPE_LIST_CONTEXT(list);
- name = list_escape(list->ns, name, FALSE);
+ name = list_escape(mlist, list->ns, name, FALSE);
return mlist->module_ctx.super.is_valid_create_name(list, name);
}
More information about the dovecot-cvs
mailing list