Mercurial > dovecot > core-2.2
changeset 12620:b9baa9db8950
imapc: Fixed LIST/LSUB handling.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 31 Jan 2011 19:01:22 +0200 |
parents | c83cdf089725 |
children | 4244c828b59d |
files | src/lib-storage/index/imapc/imapc-list.c |
diffstat | 1 files changed, 3 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-list.c Mon Jan 31 19:00:57 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-list.c Mon Jan 31 19:01:22 2011 +0200 @@ -103,15 +103,13 @@ lets see if this is the reply for its request. */ if (args[0].type == IMAP_ARG_EOL || !imap_arg_get_nstring(&args[1], &sep) || - !imap_arg_get_astring(&args[2], &name) || *name != '\0') + !imap_arg_get_astring(&args[2], &name)) return; /* we can't handle NIL separator yet */ list->sep = sep == NULL ? '/' : sep[0]; return; } - if (list->mailboxes == NULL) - list->mailboxes = mailbox_tree_init(list->sep); (void)imapc_list_update_tree(list->mailboxes, args); } @@ -126,8 +124,6 @@ /* we haven't asked for the separator yet */ return; } - if (list->subscriptions == NULL) - list->subscriptions = mailbox_tree_init(list->sep); node = imapc_list_update_tree(list->subscriptions, args); if (node != NULL) node->flags |= MAILBOX_SUBSCRIBED; @@ -153,12 +149,14 @@ "LIST \"\" *"); if (list->mailboxes != NULL) mailbox_tree_deinit(&list->mailboxes); + list->mailboxes = mailbox_tree_init(list->sep); } else { imapc_client_cmdf(list->storage->client, imapc_list_simple_callback, &ctx, "LSUB \"\" *"); if (list->subscriptions != NULL) mailbox_tree_deinit(&list->subscriptions); + list->subscriptions = mailbox_tree_init(list->sep); } imapc_client_run(list->storage->client);