diff src/lda/main.c @ 10130:d1384c2b08e5 HEAD

Merged single and multi mail_storage_service_*() functions.
author Timo Sirainen <tss@iki.fi>
date Wed, 21 Oct 2009 19:54:00 -0400
parents e248c1e53e00
children 545bdb7670d2
line wrap: on
line diff
--- a/src/lda/main.c	Wed Oct 21 16:58:10 2009 -0400
+++ b/src/lda/main.c	Wed Oct 21 19:54:00 2009 -0400
@@ -245,6 +245,8 @@
 	struct mail_deliver_context ctx;
 	enum mail_storage_service_flags service_flags = 0;
 	const char *user, *errstr, *path;
+	struct mail_storage_service_ctx *storage_service;
+	struct mail_storage_service_user *service_user;
 	struct mail_storage_service_input service_input;
 	struct mail_user *raw_mail_user;
 	struct mail_namespace *raw_ns;
@@ -380,14 +382,17 @@
 	service_input.username = user;
 
 	service_flags |= MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT;
-	ctx.dest_user = mail_storage_service_init_user(master_service,
-						       &service_input,
-						       set_roots,
-						       service_flags);
+	storage_service = mail_storage_service_init(master_service, set_roots,
+						    service_flags);
+	if (mail_storage_service_lookup_next(storage_service, &service_input,
+					     &service_user, &ctx.dest_user,
+					     &errstr) <= 0)
+		i_fatal("%s", errstr);
+
 #ifdef SIGXFSZ
         lib_signals_ignore(SIGXFSZ, TRUE);
 #endif
-	ctx.set = mail_storage_service_get_settings(master_service);
+	ctx.set = mail_storage_service_user_get_set(service_user)[1];
         duplicate_init(mail_user_set_get_storage_set(ctx.dest_user->set));
 
 	/* create a separate mail user for the internal namespace */
@@ -489,7 +494,8 @@
 	duplicate_deinit();
 	pool_unref(&ctx.pool);
 
-	mail_storage_service_deinit_user();
+	mail_storage_service_user_free(&service_user);
+	mail_storage_service_deinit(&storage_service);
 	master_service_deinit(&master_service);
         return EX_OK;
 }