]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_storage_service_all_init() no longer returns total number of users.
authorTimo Sirainen <tss@iki.fi>
Thu, 11 Jul 2013 23:17:31 +0000 (02:17 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 11 Jul 2013 23:17:31 +0000 (02:17 +0300)
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
src/lib-storage/mail-storage-service.c
src/lib-storage/mail-storage-service.h

index c955eaa504e3bf6c8fe428e08cab2e6d6bcd41c5..ba2dd9bfdb4e2be57cf45ef20f58816e6d0b6168 100644 (file)
@@ -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);
                        }
                }
index 04444bd3a4b6b58c0e8627a09fd441baeed201b6..2ef169a39a2bac13ceae6ff06794aed084cdcba0 100644 (file)
@@ -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,
index f388942d3d49d917ea88aef804aac22af1272427..358652f9d3052135e64c3a8e49c388e7468997b7 100644 (file)
@@ -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,