dovecot-2.2: virtual plugin: If mailbox list iteration fails, lo...
dovecot at dovecot.org
dovecot at dovecot.org
Mon Jan 19 20:26:14 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/d4e9c940fb7f
changeset: 18171:d4e9c940fb7f
user: Timo Sirainen <tss at iki.fi>
date: Mon Jan 19 22:09:14 2015 +0200
description:
virtual plugin: If mailbox list iteration fails, log the error.
diffstat:
src/plugins/virtual/virtual-config.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diffs (40 lines):
diff -r 861c9985e7c2 -r d4e9c940fb7f src/plugins/virtual/virtual-config.c
--- a/src/plugins/virtual/virtual-config.c Mon Jan 19 21:58:19 2015 +0200
+++ b/src/plugins/virtual/virtual-config.c Mon Jan 19 22:09:14 2015 +0200
@@ -304,7 +304,8 @@
return FALSE;
}
-static int virtual_config_expand_wildcards(struct virtual_parse_context *ctx)
+static int virtual_config_expand_wildcards(struct virtual_parse_context *ctx,
+ const char **error_r)
{
const enum mail_namespace_type iter_ns_types =
MAIL_NAMESPACE_TYPE_MASK_ALL;
@@ -354,7 +355,11 @@
}
for (i = 0; i < count; i++)
mail_search_args_unref(&wboxes[i]->search_args);
- return mailbox_list_iter_deinit(&iter);
+ if (mailbox_list_iter_deinit(&iter) < 0) {
+ *error_r = mailbox_list_get_last_error(user->namespaces->list, NULL);
+ return -1;
+ }
+ return 0;
}
static void virtual_config_search_args_dup(struct virtual_mailbox *mbox)
@@ -434,8 +439,11 @@
}
virtual_mailbox_get_list_patterns(&ctx);
- if (ret == 0 && ctx.have_wildcards)
- ret = virtual_config_expand_wildcards(&ctx);
+ if (ret == 0 && ctx.have_wildcards) {
+ ret = virtual_config_expand_wildcards(&ctx, &error);
+ if (ret < 0)
+ mail_storage_set_critical(storage, "%s: %s", path, error);
+ }
if (ret == 0 && !ctx.have_mailbox_defines) {
mail_storage_set_critical(storage,
More information about the dovecot-cvs
mailing list