dovecot-2.0: doveadm import: Initialize the import user properly.

dovecot at dovecot.org dovecot at dovecot.org
Fri Apr 8 17:27:56 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.0/rev/e2b747f88e54
changeset: 12726:e2b747f88e54
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Apr 08 17:27:52 2011 +0300
description:
doveadm import: Initialize the import user properly.

diffstat:

 src/doveadm/doveadm-mail-import.c |  14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diffs (38 lines):

diff -r 1f545a4a1ffb -r e2b747f88e54 src/doveadm/doveadm-mail-import.c
--- 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);
 }


More information about the dovecot-cvs mailing list