From: Timo Sirainen Date: Thu, 11 Jul 2013 23:17:31 +0000 (+0300) Subject: lib-storage: mail_storage_service_all_init() no longer returns total number of users. X-Git-Tag: 2.2.5~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4dc81fe17cc3aca2e8e9ccb988f90bae12ca2ad0;p=thirdparty%2Fdovecot%2Fcore.git 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. --- 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,