dovecot-2.2: lib-storage: mail_storage_service_all_init() no lon...

dovecot at dovecot.org dovecot at dovecot.org
Fri Jul 12 02:17:44 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/c0b0f46ff581
changeset: 16609:c0b0f46ff581
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Jul 12 02:17:31 2013 +0300
description:
lib-storage: mail_storage_service_all_init() no longer returns total number of users.
In preperation for removing the count functionality, since it requires
reading all the users into memory for it to work.

This also required removing the /total from verbosity counter with
doveadm -A.

diffstat:

 src/doveadm/doveadm-mail.c             |  11 ++++-------
 src/lib-storage/mail-storage-service.c |   4 +---
 src/lib-storage/mail-storage-service.h |   5 ++---
 3 files changed, 7 insertions(+), 13 deletions(-)

diffs (70 lines):

diff -r 7172b893101d -r c0b0f46ff581 src/doveadm/doveadm-mail.c
--- a/src/doveadm/doveadm-mail.c	Fri Jul 12 01:57:45 2013 +0300
+++ b/src/doveadm/doveadm-mail.c	Fri Jul 12 02:17:31 2013 +0300
@@ -342,7 +342,7 @@
 		       const char *wildcard_user)
 {
 	struct mail_storage_service_input input;
-	unsigned int user_idx, user_count, interval, n;
+	unsigned int user_idx;
 	const char *user, *error;
 	int ret;
 
@@ -359,10 +359,7 @@
 
 	ctx->v.init(ctx, (const void *)argv);
 
-	user_count = mail_storage_service_all_init(ctx->storage_service);
-	n = user_count / 10000;
-	for (interval = 10; n > 0 && interval < 1000; interval *= 10)
-		n /= 10;
+	mail_storage_service_all_init(ctx->storage_service);
 
 	if (hook_doveadm_mail_init != NULL)
 		hook_doveadm_mail_init(ctx);
@@ -386,8 +383,8 @@
 		if (ret == -1)
 			break;
 		if (doveadm_verbose) {
-			if (++user_idx % interval == 0) {
-				printf("\r%d / %d", user_idx, user_count);
+			if (++user_idx % 100 == 0) {
+				printf("\r%d", user_idx);
 				fflush(stdout);
 			}
 		}
diff -r 7172b893101d -r c0b0f46ff581 src/lib-storage/mail-storage-service.c
--- a/src/lib-storage/mail-storage-service.c	Fri Jul 12 01:57:45 2013 +0300
+++ b/src/lib-storage/mail-storage-service.c	Fri Jul 12 02:17:31 2013 +0300
@@ -1243,15 +1243,13 @@
 	pool_unref(&temp_pool);
 }
 
-unsigned int
-mail_storage_service_all_init(struct mail_storage_service_ctx *ctx)
+void mail_storage_service_all_init(struct mail_storage_service_ctx *ctx)
 {
 	if (ctx->auth_list != NULL)
 		(void)auth_master_user_list_deinit(&ctx->auth_list);
 	mail_storage_service_init_settings(ctx, NULL);
 
 	ctx->auth_list = auth_master_user_list_init(ctx->conn, "", NULL);
-	return auth_master_user_list_count(ctx->auth_list);
 }
 
 int mail_storage_service_all_next(struct mail_storage_service_ctx *ctx,
diff -r 7172b893101d -r c0b0f46ff581 src/lib-storage/mail-storage-service.h
--- a/src/lib-storage/mail-storage-service.h	Fri Jul 12 01:57:45 2013 +0300
+++ b/src/lib-storage/mail-storage-service.h	Fri Jul 12 02:17:31 2013 +0300
@@ -98,9 +98,8 @@
 				     struct mail_user **mail_user_r,
 				     const char **error_r);
 void mail_storage_service_user_free(struct mail_storage_service_user **user);
-/* Initialize iterating through all users. Return the number of users. */
-unsigned int
-mail_storage_service_all_init(struct mail_storage_service_ctx *ctx);
+/* Initialize iterating through all users. */
+void mail_storage_service_all_init(struct mail_storage_service_ctx *ctx);
 /* Iterate through all usernames. Returns 1 if username was returned, 0 if
    there are no more users, -1 if error. */
 int mail_storage_service_all_next(struct mail_storage_service_ctx *ctx,


More information about the dovecot-cvs mailing list