Mercurial > dovecot > core-2.2
changeset 12933:e2b747f88e54
doveadm import: Initialize the import user properly.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 08 Apr 2011 17:27:52 +0300 |
parents | 1f545a4a1ffb |
children | 2b7af3a16521 |
files | src/doveadm/doveadm-mail-import.c |
diffstat | 1 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail-import.c Fri Apr 08 17:26:49 2011 +0300 +++ b/src/doveadm/doveadm-mail-import.c Fri Apr 08 17:27:52 2011 +0300 @@ -158,7 +158,7 @@ struct mail_storage_service_input input; struct mail_storage_service_user *service_user; struct mail_user *user; - const char *src_location, *error, *userdb_fields[2]; + const char *src_location, *error; if (str_array_length(args) < 3) doveadm_mail_help_name("import"); @@ -166,19 +166,19 @@ ctx->dest_parent = p_strdup(_ctx->pool, args[1]); ctx->ctx.search_args = doveadm_mail_build_search_args(args+2); - /* @UNSAFE */ - userdb_fields[0] = t_strconcat("mail=", src_location, NULL); - userdb_fields[1] = NULL; - /* create a user for accessing the source storage */ memset(&input, 0, sizeof(input)); input.module = "mail"; input.username = "doveadm"; - input.no_userdb_lookup = TRUE; - input.userdb_fields = userdb_fields; + input.flags_override_add = MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES | + MAIL_STORAGE_SERVICE_FLAG_NO_RESTRICT_ACCESS; + input.flags_override_remove = MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP; if (mail_storage_service_lookup_next(ctx->ctx.storage_service, &input, &service_user, &user, &error) < 0) i_fatal("Import user initialization failed: %s", error); + if (mail_namespaces_init_location(user, src_location, &error) < 0) + i_fatal("Import namespace initialization failed: %s", error); + ctx->src_user = user; mail_storage_service_user_free(&service_user); }