dovecot-2.0: lib-storage: Removed code related to listing mailbo...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jul 11 21:32:33 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/b25a30644e68
changeset: 11790:b25a30644e68
user: Timo Sirainen <tss at iki.fi>
date: Sun Jul 11 19:32:28 2010 +0100
description:
lib-storage: Removed code related to listing mailboxes with non-virtual names.
The non-virtual listing code would have already crashed with assert.
diffstat:
src/doveadm/doveadm-mail-altmove.c | 1 -
src/doveadm/doveadm-mail-expunge.c | 1 -
src/doveadm/doveadm-mail-fetch.c | 1 -
src/doveadm/doveadm-mail-list-iter.c | 2 -
src/doveadm/doveadm-mail-mailbox-status.c | 1 -
src/doveadm/doveadm-mail-mailbox.c | 1 -
src/doveadm/doveadm-mail-search.c | 1 -
src/dsync/dsync-worker-local.c | 2 -
src/imap/cmd-list.c | 7 +-
src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c | 1 -
src/lib-storage/index/shared/shared-list.c | 2 -
src/lib-storage/list/mailbox-list-fs-iter.c | 24 ++-----
src/lib-storage/list/mailbox-list-maildir-iter.c | 46 +++------------
src/lib-storage/list/mailbox-list-maildir.c | 1 -
src/lib-storage/mailbox-list.c | 38 ++++--------
src/lib-storage/mailbox-list.h | 5 +-
src/plugins/acl/acl-backend-vfile-acllist.c | 1 -
src/plugins/acl/acl-mailbox-list.c | 17 +----
src/plugins/acl/acl-shared-storage.c | 1 -
src/plugins/listescape/listescape-plugin.c | 6 +-
src/plugins/quota/quota-count.c | 1 -
src/plugins/quota/quota-maildir.c | 1 -
src/plugins/virtual/virtual-config.c | 1 -
23 files changed, 40 insertions(+), 122 deletions(-)
diffs (truncated from 562 to 300 lines):
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-altmove.c
--- a/src/doveadm/doveadm-mail-altmove.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-altmove.c Sun Jul 11 19:32:28 2010 +0100
@@ -46,7 +46,6 @@
{
const enum mailbox_list_iter_flags iter_flags =
MAILBOX_LIST_ITER_RAW_LIST |
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct doveadm_mail_list_iter *iter;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-expunge.c
--- a/src/doveadm/doveadm-mail-expunge.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-expunge.c Sun Jul 11 19:32:28 2010 +0100
@@ -166,7 +166,6 @@
{
const enum mailbox_list_iter_flags iter_flags =
MAILBOX_LIST_ITER_RAW_LIST |
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct doveadm_mail_list_iter *iter;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-fetch.c
--- a/src/doveadm/doveadm-mail-fetch.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-fetch.c Sun Jul 11 19:32:28 2010 +0100
@@ -422,7 +422,6 @@
{
struct fetch_cmd_context *ctx = (struct fetch_cmd_context *)_ctx;
const enum mailbox_list_iter_flags iter_flags =
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct doveadm_mail_list_iter *iter;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-list-iter.c
--- a/src/doveadm/doveadm-mail-list-iter.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-list-iter.c Sun Jul 11 19:32:28 2010 +0100
@@ -58,8 +58,6 @@
struct doveadm_mail_list_iter *iter;
ARRAY_TYPE(const_string) patterns;
- i_assert((iter_flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0);
-
iter = i_new(struct doveadm_mail_list_iter, 1);
iter->search_args = search_args;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-mailbox-status.c
--- a/src/doveadm/doveadm-mail-mailbox-status.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-mailbox-status.c Sun Jul 11 19:32:28 2010 +0100
@@ -134,7 +134,6 @@
{
struct status_cmd_context *ctx = (struct status_cmd_context *)_ctx;
enum mailbox_list_iter_flags iter_flags =
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_RAW_LIST |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-mailbox.c
--- a/src/doveadm/doveadm-mail-mailbox.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-mailbox.c Sun Jul 11 19:32:28 2010 +0100
@@ -110,7 +110,6 @@
struct list_cmd_context *ctx = (struct list_cmd_context *)_ctx;
enum mailbox_list_iter_flags iter_flags =
MAILBOX_LIST_ITER_RAW_LIST |
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct doveadm_mail_list_iter *iter;
diff -r 54807112d1d6 -r b25a30644e68 src/doveadm/doveadm-mail-search.c
--- a/src/doveadm/doveadm-mail-search.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/doveadm/doveadm-mail-search.c Sun Jul 11 19:32:28 2010 +0100
@@ -46,7 +46,6 @@
{
const enum mailbox_list_iter_flags iter_flags =
MAILBOX_LIST_ITER_RAW_LIST |
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct doveadm_mail_list_iter *iter;
diff -r 54807112d1d6 -r b25a30644e68 src/dsync/dsync-worker-local.c
--- a/src/dsync/dsync-worker-local.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/dsync/dsync-worker-local.c Sun Jul 11 19:32:28 2010 +0100
@@ -388,7 +388,6 @@
(struct local_dsync_worker *)_worker;
struct local_dsync_worker_mailbox_iter *iter;
enum mailbox_list_iter_flags list_flags =
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_SKIP_ALIASES |
MAILBOX_LIST_ITER_NO_AUTO_INBOX;
static const char *patterns[] = { "*", NULL };
@@ -592,7 +591,6 @@
(struct local_dsync_worker *)_worker;
struct local_dsync_worker_subs_iter *iter;
enum mailbox_list_iter_flags list_flags =
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_SKIP_ALIASES |
MAILBOX_LIST_ITER_SELECT_SUBSCRIBED;
static const char *patterns[] = { "*", NULL };
diff -r 54807112d1d6 -r b25a30644e68 src/imap/cmd-list.c
--- a/src/imap/cmd-list.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/imap/cmd-list.c Sun Jul 11 19:32:28 2010 +0100
@@ -184,8 +184,7 @@
/* find the INBOX flags */
ns = mail_namespace_find_inbox(ctx->cmd->client->user->namespaces);
- list_iter = mailbox_list_iter_init(ns->list, "INBOX",
- MAILBOX_LIST_ITER_VIRTUAL_NAMES);
+ list_iter = mailbox_list_iter_init(ns->list, "INBOX", 0);
info = mailbox_list_iter_next(list_iter);
if (info != NULL) {
i_assert(strcasecmp(info->name, "INBOX") == 0);
@@ -198,8 +197,7 @@
static bool list_namespace_has_children(struct cmd_list_context *ctx)
{
enum mailbox_list_iter_flags list_flags =
- MAILBOX_LIST_ITER_RETURN_NO_FLAGS |
- MAILBOX_LIST_ITER_VIRTUAL_NAMES;
+ MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
struct mailbox_list_iterate_context *list_iter;
const struct mailbox_info *info;
bool ret = FALSE;
@@ -925,7 +923,6 @@
args += 2;
}
- ctx->list_flags |= MAILBOX_LIST_ITER_VIRTUAL_NAMES;
if (lsub) {
/* LSUB - we don't care about flags */
ctx->list_flags |= MAILBOX_LIST_ITER_SELECT_SUBSCRIBED |
diff -r 54807112d1d6 -r b25a30644e68 src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c
--- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c Sun Jul 11 19:32:28 2010 +0100
@@ -549,7 +549,6 @@
ctx->default_list = ns->list;
iter = mailbox_list_iter_init(ns->list, "*",
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_RAW_LIST |
MAILBOX_LIST_ITER_RETURN_NO_FLAGS);
while ((info = mailbox_list_iter_next(iter)) != NULL) {
diff -r 54807112d1d6 -r b25a30644e68 src/lib-storage/index/shared/shared-list.c
--- a/src/lib-storage/index/shared/shared-list.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/lib-storage/index/shared/shared-list.c Sun Jul 11 19:32:28 2010 +0100
@@ -196,8 +196,6 @@
prefix matches without the trailing separator */
i_assert(ns->prefix_len > 0);
ctx->info.name = t_strndup(ns->prefix, ns->prefix_len - 1);
- if ((_ctx->flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) == 0)
- ctx->info.name += ctx->info.ns->prefix_len;
if (imap_match(ctx->glob, ctx->info.name) == IMAP_MATCH_YES) {
ctx->cur_ns = ns->next;
return &ctx->info;
diff -r 54807112d1d6 -r b25a30644e68 src/lib-storage/list/mailbox-list-fs-iter.c
--- a/src/lib-storage/list/mailbox-list-fs-iter.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/lib-storage/list/mailbox-list-fs-iter.c Sun Jul 11 19:32:28 2010 +0100
@@ -223,8 +223,7 @@
ctx->ctx.flags = flags;
ctx->info_pool = pool_alloconly_create("fs list", 1024);
ctx->next = fs_list_next;
- ctx->sep = (flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0 ?
- _list->ns->sep : _list->ns->real_sep;
+ ctx->sep = _list->ns->sep;
ctx->info.ns = _list->ns;
prefix_len = strlen(_list->ns->prefix);
@@ -232,14 +231,11 @@
for (; *patterns != NULL; patterns++) {
/* check that we're not trying to do any "../../" lists */
test_pattern = *patterns;
- if ((flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0) {
- /* skip namespace prefix if possible. this allows using
- e.g. ~/mail/ prefix and have it pass the pattern
- validation. */
- if (strncmp(test_pattern, _list->ns->prefix,
- prefix_len) == 0)
- test_pattern += prefix_len;
- }
+ /* skip namespace prefix if possible. this allows using
+ e.g. ~/mail/ prefix and have it pass the pattern
+ validation. */
+ if (strncmp(test_pattern, _list->ns->prefix, prefix_len) == 0)
+ test_pattern += prefix_len;
if (mailbox_list_is_valid_pattern(_list, test_pattern)) {
if (strcasecmp(*patterns, "INBOX") == 0) {
ctx->inbox_match = TRUE;
@@ -278,8 +274,7 @@
return &ctx->ctx;
}
- vpath = (flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0 ?
- _list->ns->prefix : "";
+ vpath = _list->ns->prefix;
rootdir = list_get_rootdir(ctx, &vpath);
if (rootdir == NULL) {
path = mailbox_list_get_path(_list, NULL,
@@ -663,10 +658,7 @@
&storage_name);
if (ns == NULL) {
ns = ctx->info.ns;
- if ((ctx->ctx.flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0)
- storage_name = mail_namespace_get_storage_name(ns, storage_name);
- else
- storage_name = ctx->info.name;
+ storage_name = mail_namespace_get_storage_name(ns, storage_name);
}
/* if name ends with hierarchy separator, drop the separator */
diff -r 54807112d1d6 -r b25a30644e68 src/lib-storage/list/mailbox-list-maildir-iter.c
--- a/src/lib-storage/list/mailbox-list-maildir-iter.c Sun Jul 11 19:19:45 2010 +0100
+++ b/src/lib-storage/list/mailbox-list-maildir-iter.c Sun Jul 11 19:32:28 2010 +0100
@@ -47,28 +47,18 @@
struct mail_namespace *ns = ctx->ctx.list->ns;
struct mailbox_node *node;
const char *p, *mailbox_c;
- char hierarchy_sep;
bool created;
- unsigned int prefix_len;
-
- if ((ctx->ctx.flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0) {
- hierarchy_sep = ns->sep;
- prefix_len = ns->prefix_len;
- } else {
- hierarchy_sep = ns->real_sep;
- prefix_len = 0;
- }
mailbox_c = str_c(mailbox);
- while ((p = strrchr(mailbox_c, hierarchy_sep)) != NULL) {
+ while ((p = strrchr(mailbox_c, ns->sep)) != NULL) {
str_truncate(mailbox, (size_t) (p-mailbox_c));
mailbox_c = str_c(mailbox);
if (imap_match(glob, mailbox_c) != IMAP_MATCH_YES)
continue;
- if (prefix_len > 0 && str_len(mailbox) == prefix_len-1 &&
- strncmp(mailbox_c, ns->prefix, prefix_len - 1) == 0 &&
- mailbox_c[prefix_len-1] == hierarchy_sep) {
+ if (ns->prefix_len > 0 && str_len(mailbox) == ns->prefix_len-1 &&
+ strncmp(mailbox_c, ns->prefix, ns->prefix_len - 1) == 0 &&
+ mailbox_c[ns->prefix_len-1] == ns->sep) {
/* don't return matches to namespace prefix itself */
continue;
}
@@ -99,10 +89,7 @@
const char *p, *mailbox_c;
char hierarchy_sep;
- if ((ctx->ctx.flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0)
- hierarchy_sep = ctx->ctx.list->ns->sep;
- else
- hierarchy_sep = ctx->ctx.list->ns->real_sep;
+ hierarchy_sep = ctx->ctx.list->ns->sep;
/* mark the first existing parent as containing children */
mailbox_c = str_c(mailbox);
@@ -287,7 +274,7 @@
enum mailbox_info_flags flags;
enum imap_match_result match;
struct mailbox_node *node;
- bool created, virtual_names;
+ bool created;
struct stat st;
int ret;
@@ -304,8 +291,6 @@
return 0;
}
- virtual_names = (ctx->ctx.flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) != 0;
-
mailbox = t_str_new(MAILBOX_LIST_NAME_MAX_LENGTH);
while ((d = readdir(dirp)) != NULL) {
const char *fname = d->d_name;
@@ -323,14 +308,8 @@
(fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
continue;
- if (!virtual_names) {
- str_truncate(mailbox, 0);
- str_append(mailbox, mailbox_name);
- mailbox_name = str_c(mailbox);
- } else {
- mailbox_name = mail_namespace_get_vname(ns, mailbox,
- mailbox_name);
- }
+ mailbox_name = mail_namespace_get_vname(ns, mailbox,
+ mailbox_name);
/* make sure the pattern matches */
match = imap_match(glob, mailbox_name);
@@ -412,7 +391,6 @@
struct mailbox_node *node;
iter = mailbox_list_iter_init(ns->list, "*",
- MAILBOX_LIST_ITER_VIRTUAL_NAMES |
MAILBOX_LIST_ITER_RETURN_CHILDREN);
while ((info = mailbox_list_iter_next(iter)) != NULL) {
node = mailbox_tree_lookup(ctx->tree_ctx, info->name);
@@ -459,24 +437,20 @@
{
struct maildir_list_iterate_context *ctx;
More information about the dovecot-cvs
mailing list