changeset 16609:c0b0f46ff581

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.
author Timo Sirainen <tss@iki.fi>
date Fri, 12 Jul 2013 02:17:31 +0300
parents 7172b893101d
children 328bc770af54
files src/doveadm/doveadm-mail.c src/lib-storage/mail-storage-service.c src/lib-storage/mail-storage-service.h
diffstat 3 files changed, 7 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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);
 			}
 		}
--- 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,
--- 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,