From: Timo Sirainen Date: Sat, 7 Jan 2023 20:31:50 +0000 (+0200) Subject: doveadm: Replace mail_storage_service_save_userdb_fields() with mail_storage_service... X-Git-Tag: 2.4.0~2314 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=afe189b847be5057089b4c2037b61caeee6ce5ce;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Replace mail_storage_service_save_userdb_fields() with mail_storage_service_user_get_userdb_fields() This is much less kludgy. --- diff --git a/src/doveadm/doveadm-auth-server.c b/src/doveadm/doveadm-auth-server.c index 3c15df7151..e8007bbf60 100644 --- a/src/doveadm/doveadm-auth-server.c +++ b/src/doveadm/doveadm-auth-server.c @@ -264,7 +264,6 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, struct mail_storage_service_input service_input; struct mail_user *user; const char *error, *const *userdb_fields; - pool_t pool; int ret; i_zero(&service_input); @@ -276,13 +275,8 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, service_input.remote_port = input->info.remote_port; service_input.debug = input->info.debug; - pool = pool_alloconly_create("userdb fields", 1024); - mail_storage_service_save_userdb_fields(storage_service, pool, - &userdb_fields); - if ((ret = mail_storage_service_lookup_next(storage_service, &service_input, &user, &error)) <= 0) { - pool_unref(&pool); if (ret < 0) return -1; json_ostream_nwritef_string(json_output, "error", @@ -292,6 +286,7 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, } if (expand_field == NULL) { + userdb_fields = mail_storage_service_user_get_userdb_fields(user->service_user); cmd_user_mail_print_fields(input, user, json_output, userdb_fields, show_field); } else { @@ -309,7 +304,6 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, } mail_user_deinit(&user); - pool_unref(&pool); return 1; } diff --git a/src/doveadm/doveadm-auth.c b/src/doveadm/doveadm-auth.c index 9a210f1462..c00e4fea70 100644 --- a/src/doveadm/doveadm-auth.c +++ b/src/doveadm/doveadm-auth.c @@ -665,7 +665,6 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, struct mail_storage_service_input service_input; struct mail_user *user; const char *error, *const *userdb_fields; - pool_t pool; int ret; i_zero(&service_input); @@ -677,13 +676,8 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, service_input.remote_port = input->info.remote_port; service_input.debug = input->info.debug; - pool = pool_alloconly_create("userdb fields", 1024); - mail_storage_service_save_userdb_fields(storage_service, pool, - &userdb_fields); - if ((ret = mail_storage_service_lookup_next(storage_service, &service_input, &user, &error)) <= 0) { - pool_unref(&pool); if (ret < 0) return -1; fprintf(show_field == NULL && expand_field == NULL ? stdout : stderr, @@ -692,9 +686,10 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, return 0; } - if (expand_field == NULL) + if (expand_field == NULL) { + userdb_fields = mail_storage_service_user_get_userdb_fields(user->service_user); cmd_user_mail_print_fields(input, user, userdb_fields, show_field); - else { + } else { string_t *str = t_str_new(128); if (var_expand_with_funcs(str, expand_field, mail_user_var_expand_table(user), @@ -707,7 +702,6 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, } mail_user_deinit(&user); - pool_unref(&pool); return 1; }