From: Timo Sirainen Date: Wed, 8 Mar 2023 14:33:03 +0000 (+0200) Subject: lib-storage, global: Remove "settings roots" X-Git-Tag: 2.4.0~2236 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb4753b3813b278bb5d716671e1c7614361c8ac6;p=thirdparty%2Fdovecot%2Fcore.git lib-storage, global: Remove "settings roots" These were no longer used for anything. --- diff --git a/src/doveadm/doveadm-auth-server.c b/src/doveadm/doveadm-auth-server.c index e8007bbf60..185cb6e31b 100644 --- a/src/doveadm/doveadm-auth-server.c +++ b/src/doveadm/doveadm-auth-server.c @@ -376,7 +376,7 @@ static void cmd_user_ver2(struct doveadm_cmd_context *cctx) } if (!userdb_only) { - storage_service = mail_storage_service_init(master_service, NULL, + storage_service = mail_storage_service_init(master_service, MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP | MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR | MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT | diff --git a/src/doveadm/doveadm-auth.c b/src/doveadm/doveadm-auth.c index c00e4fea70..f55f42becc 100644 --- a/src/doveadm/doveadm-auth.c +++ b/src/doveadm/doveadm-auth.c @@ -757,7 +757,7 @@ static void cmd_user(struct doveadm_cmd_context *cctx) } if (!userdb_only) { - storage_service = mail_storage_service_init(master_service, NULL, + storage_service = mail_storage_service_init(master_service, MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP | MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR | MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT | diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index 3807d8d649..a787a5c8df 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -506,7 +506,7 @@ int doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx, i_assert(cctx->username != NULL); doveadm_mail_ctx_to_storage_service_input(ctx, &ctx->storage_service_input); - ctx->storage_service = mail_storage_service_init(master_service, NULL, + ctx->storage_service = mail_storage_service_init(master_service, ctx->service_flags); T_BEGIN { ctx->v.init(ctx); @@ -530,7 +530,7 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, ctx->service_flags |= MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP; doveadm_mail_ctx_to_storage_service_input(ctx, &ctx->storage_service_input); - ctx->storage_service = mail_storage_service_init(master_service, NULL, + ctx->storage_service = mail_storage_service_init(master_service, ctx->service_flags); T_BEGIN { diff --git a/src/imap-urlauth/imap-urlauth-worker.c b/src/imap-urlauth/imap-urlauth-worker.c index 06edea35ac..969e792340 100644 --- a/src/imap-urlauth/imap-urlauth-worker.c +++ b/src/imap-urlauth/imap-urlauth-worker.c @@ -978,10 +978,6 @@ static void client_connected(struct master_service_connection *conn) int main(int argc, char *argv[]) { - static const struct setting_parser_info *set_roots[] = { - &imap_urlauth_worker_setting_parser_info, - NULL - }; enum master_service_flags service_flags = 0; enum mail_storage_service_flags storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP | @@ -1025,7 +1021,7 @@ int main(int argc, char *argv[]) storage_service = mail_storage_service_init(master_service, - set_roots, storage_service_flags); + storage_service_flags); master_service_init_finish(master_service); /* fake that we're running, so we know if client was destroyed diff --git a/src/imap/main.c b/src/imap/main.c index 05baf4aa86..d5a8f7f796 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -483,11 +483,6 @@ static void client_connected(struct master_service_connection *conn) int main(int argc, char *argv[]) { - static const struct setting_parser_info *set_roots[] = { - &smtp_submit_setting_parser_info, - &imap_setting_parser_info, - NULL - }; struct login_server_settings login_set; enum master_service_flags service_flags = 0; enum mail_storage_service_flags storage_service_flags = @@ -575,7 +570,7 @@ int main(int argc, char *argv[]) storage_service = mail_storage_service_init(master_service, - set_roots, storage_service_flags); + storage_service_flags); master_service_init_finish(master_service); /* NOTE: login_set.*_socket_path are now invalid due to data stack having been freed */ diff --git a/src/imap/test-imap-client-hibernate.c b/src/imap/test-imap-client-hibernate.c index 6dbe7b7860..20411b8654 100644 --- a/src/imap/test-imap-client-hibernate.c +++ b/src/imap/test-imap-client-hibernate.c @@ -144,7 +144,7 @@ static void test_imap_client_hibernate(void) struct test_imap_client_hibernate ctx; const char *error; - storage_service = mail_storage_service_init(master_service, NULL, + storage_service = mail_storage_service_init(master_service, MAIL_STORAGE_SERVICE_FLAG_ALLOW_ROOT | MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT | MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR | diff --git a/src/indexer/indexer-worker.c b/src/indexer/indexer-worker.c index af2efb3dc4..7d293acce4 100644 --- a/src/indexer/indexer-worker.c +++ b/src/indexer/indexer-worker.c @@ -66,7 +66,7 @@ int main(int argc, char *argv[]) drop_privileges(); master_service_init_log_with_pid(master_service); - storage_service = mail_storage_service_init(master_service, NULL, + storage_service = mail_storage_service_init(master_service, storage_service_flags); restrict_access_allow_coredumps(TRUE); master_service_init_finish(master_service); diff --git a/src/lda/main.c b/src/lda/main.c index b1197eb0ac..9bbaf73b73 100644 --- a/src/lda/main.c +++ b/src/lda/main.c @@ -346,11 +346,6 @@ static void print_help(void) int main(int argc, char *argv[]) { - const struct setting_parser_info *set_roots[] = { - &smtp_submit_setting_parser_info, - &lda_setting_parser_info, - NULL - }; struct mail_deliver_input dinput; enum mail_storage_service_flags service_flags = 0; const char *user, *errstr, *path; @@ -531,7 +526,7 @@ int main(int argc, char *argv[]) service_input.event_parent = event; service_flags |= MAIL_STORAGE_SERVICE_FLAG_USE_SYSEXITS; - storage_service = mail_storage_service_init(master_service, set_roots, + storage_service = mail_storage_service_init(master_service, service_flags); mail_deliver_hooks_init(); /* set before looking up the user (or ideally we'd do this between diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 2109ac4148..792c637039 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -52,7 +52,6 @@ struct mail_storage_service_ctx { struct auth_master_connection *conn, *iter_conn; struct auth_master_user_list_ctx *auth_list; - ARRAY(const struct setting_parser_info *) set_roots; enum mail_storage_service_flags flags; bool debug:1; @@ -833,13 +832,11 @@ mail_storage_service_time_moved(const struct timeval *old_time, struct mail_storage_service_ctx * mail_storage_service_init(struct master_service *service, - const struct setting_parser_info *set_roots[], enum mail_storage_service_flags flags) { struct mail_storage_service_ctx *ctx; const char *version; pool_t pool; - unsigned int count; version = master_service_get_version_string(service); if (version != NULL && strcmp(version, PACKAGE_VERSION) != 0) { @@ -867,18 +864,6 @@ mail_storage_service_init(struct master_service *service, ctx->service = service; ctx->flags = flags; - /* @UNSAFE */ - if (set_roots == NULL) - count = 0; - else - for (count = 0; set_roots[count] != NULL; count++) ; - p_array_init(&ctx->set_roots, pool, count + 16); - const struct setting_parser_info *info = &mail_user_setting_parser_info; - array_push_back(&ctx->set_roots, &info); - info = &mail_storage_setting_parser_info; - array_push_back(&ctx->set_roots, &info); - array_append(&ctx->set_roots, set_roots, count); - /* note: we may not have read any settings yet, so this logging may still be going to wrong location */ const char *configured_name = @@ -916,41 +901,6 @@ mail_storage_service_input_get_flags(struct mail_storage_service_ctx *ctx, return flags; } -const struct setting_parser_info *const * -mail_storage_service_get_set_roots(struct mail_storage_service_ctx *ctx) -{ - /* Make sure the array is NULL-terminated */ - array_append_zero(&ctx->set_roots); - array_pop_back(&ctx->set_roots); - return array_front(&ctx->set_roots); -} - -static void -mail_storage_service_add_set_info(struct mail_storage_service_ctx *ctx, - const struct setting_parser_info *info) -{ - const struct setting_parser_info *old_info; - - array_foreach_elem(&ctx->set_roots, old_info) { - if (old_info == info) - return; - } - array_push_back(&ctx->set_roots, &info); -} - -static void -mail_storage_service_add_storage_set_roots(struct mail_storage_service_ctx *ctx) -{ - struct mail_storage *storage; - - array_foreach_elem(&mail_storage_classes, storage) { - if (storage->v.get_setting_parser_info != NULL) { - mail_storage_service_add_set_info(ctx, - storage->v.get_setting_parser_info()); - } - } -} - int mail_storage_service_read_settings(struct mail_storage_service_ctx *ctx, const struct mail_storage_service_input *input, struct master_service_settings_instance **instance_r, @@ -965,7 +915,6 @@ int mail_storage_service_read_settings(struct mail_storage_service_ctx *ctx, flags = input == NULL ? ctx->flags : mail_storage_service_input_get_flags(ctx, input); - mail_storage_service_add_storage_set_roots(ctx); i_zero(&set_input); set_input.preserve_user = TRUE; /* settings reader may exec doveconf, which is going to clear diff --git a/src/lib-storage/mail-storage-service.h b/src/lib-storage/mail-storage-service.h index 9c3b29b862..9b772f9453 100644 --- a/src/lib-storage/mail-storage-service.h +++ b/src/lib-storage/mail-storage-service.h @@ -83,8 +83,7 @@ extern struct module *mail_storage_service_modules; struct mail_storage_service_ctx * mail_storage_service_init(struct master_service *service, - const struct setting_parser_info *set_roots[], - enum mail_storage_service_flags flags) ATTR_NULL(2); + enum mail_storage_service_flags flags); struct auth_master_connection * mail_storage_service_get_auth_conn(struct mail_storage_service_ctx *ctx); /* Set auth connection (instead of creating a new one automatically). */ @@ -170,11 +169,6 @@ mail_storage_service_user_get_event(const struct mail_storage_service_user *user const char * mail_storage_service_user_get_username(const struct mail_storage_service_user *user); -/* Return all service settings roots. This includes the roots given to - mail_storage_service_init() as well as all dynamically created - mail_storage_classes. */ -const struct setting_parser_info *const * -mail_storage_service_get_set_roots(struct mail_storage_service_ctx *ctx); const char * mail_storage_service_get_log_prefix(struct mail_storage_service_ctx *ctx); const struct var_expand_table * diff --git a/src/lib-storage/test-mail-storage-common.c b/src/lib-storage/test-mail-storage-common.c index 3ca687a306..e0b57f0459 100644 --- a/src/lib-storage/test-mail-storage-common.c +++ b/src/lib-storage/test-mail-storage-common.c @@ -30,7 +30,7 @@ struct test_mail_storage_ctx *test_mail_storage_init(void) ctx->ioloop = io_loop_create(); - ctx->storage_service = mail_storage_service_init(master_service, NULL, + ctx->storage_service = mail_storage_service_init(master_service, MAIL_STORAGE_SERVICE_FLAG_NO_RESTRICT_ACCESS | MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT | MAIL_STORAGE_SERVICE_FLAG_NO_PLUGINS); diff --git a/src/lmtp/main.c b/src/lmtp/main.c index c3f788a135..ffe9b689a3 100644 --- a/src/lmtp/main.c +++ b/src/lmtp/main.c @@ -114,12 +114,6 @@ static void main_deinit(void) int main(int argc, char *argv[]) { - const struct setting_parser_info *set_roots[] = { - &smtp_submit_setting_parser_info, - &lda_setting_parser_info, - &lmtp_setting_parser_info, - NULL - }; enum master_service_flags service_flags = MASTER_SERVICE_FLAG_HAVE_STARTTLS; enum mail_storage_service_flags storage_service_flags = @@ -155,7 +149,7 @@ int main(int argc, char *argv[]) drop_privileges(); master_service_init_log_with_pid(master_service); - storage_service = mail_storage_service_init(master_service, set_roots, + storage_service = mail_storage_service_init(master_service, storage_service_flags); restrict_access_allow_coredumps(TRUE); diff --git a/src/plugins/quota/quota-status.c b/src/plugins/quota/quota-status.c index 543eb9519e..eaff501711 100644 --- a/src/plugins/quota/quota-status.c +++ b/src/plugins/quota/quota-status.c @@ -284,17 +284,13 @@ static void main_preinit(void) static void main_init(void) { - static const struct setting_parser_info *set_roots[] = { - "a_status_setting_parser_info, - NULL - }; struct mail_storage_service_input input; struct master_service_settings_instance *set_instance; const struct mail_storage_settings *mail_set; const char *value, *error; clients = connection_list_init(&client_set, &client_vfuncs); - storage_service = mail_storage_service_init(master_service, set_roots, + storage_service = mail_storage_service_init(master_service, MAIL_STORAGE_SERVICE_FLAG_ALLOW_ROOT | MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP | MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP | diff --git a/src/pop3/main.c b/src/pop3/main.c index a03f46fc55..01ec964cf0 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -366,10 +366,6 @@ static void client_connected(struct master_service_connection *conn) int main(int argc, char *argv[]) { - static const struct setting_parser_info *set_roots[] = { - &pop3_setting_parser_info, - NULL - }; struct login_server_settings login_set; enum master_service_flags service_flags = 0; enum mail_storage_service_flags storage_service_flags = 0; @@ -444,7 +440,7 @@ int main(int argc, char *argv[]) storage_service = mail_storage_service_init(master_service, - set_roots, storage_service_flags); + storage_service_flags); master_service_init_finish(master_service); /* NOTE: login_set.*_socket_path are now invalid due to data stack having been freed */ diff --git a/src/submission/main.c b/src/submission/main.c index ddbe745c86..978488f7e6 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -344,10 +344,6 @@ static void client_connected(struct master_service_connection *conn) int main(int argc, char *argv[]) { - static const struct setting_parser_info *set_roots[] = { - &submission_setting_parser_info, - NULL - }; struct login_server_settings login_set; enum master_service_flags service_flags = 0; enum mail_storage_service_flags storage_service_flags = 0; @@ -424,7 +420,7 @@ int main(int argc, char *argv[]) storage_service = mail_storage_service_init(master_service, - set_roots, storage_service_flags); + storage_service_flags); /* initialize SMTP server */ i_zero(&smtp_server_set); diff --git a/src/util/script-login.c b/src/util/script-login.c index be77c78024..f33c296bcf 100644 --- a/src/util/script-login.c +++ b/src/util/script-login.c @@ -115,7 +115,7 @@ static void client_connected(struct master_service_connection *conn) t_strdup_printf("script-login(%s): ", input.username)); if (drop_to_userdb_privileges) { - service_ctx = mail_storage_service_init(master_service, NULL, flags); + service_ctx = mail_storage_service_init(master_service, flags); if (mail_storage_service_lookup(service_ctx, &input, &user, &error) <= 0) i_fatal("%s", error); mail_storage_service_restrict_setenv(user);