From 4dc81fe17cc3aca2e8e9ccb988f90bae12ca2ad0 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 12 Jul 2013 02:17:31 +0300 Subject: [PATCH] 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. --- 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(-) diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index c955eaa504..ba2dd9bfdb 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -342,7 +342,7 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[], 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 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[], 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 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[], 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 --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 04444bd3a4..2ef169a39a 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -1243,15 +1243,13 @@ void mail_storage_service_init_settings(struct mail_storage_service_ctx *ctx, 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 --git a/src/lib-storage/mail-storage-service.h b/src/lib-storage/mail-storage-service.h index f388942d3d..358652f9d3 100644 --- a/src/lib-storage/mail-storage-service.h +++ b/src/lib-storage/mail-storage-service.h @@ -98,9 +98,8 @@ int mail_storage_service_lookup_next(struct mail_storage_service_ctx *ctx, 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, -- 2.47.3