From: Timo Sirainen Date: Thu, 5 Jan 2023 03:14:17 +0000 (+0200) Subject: stats: Use master_service_settings_get_or_fatal() X-Git-Tag: 2.4.0~2331 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3de1e14cfd910c6d8c6168762bee35a2c83768b0;p=thirdparty%2Fdovecot%2Fcore.git stats: Use master_service_settings_get_or_fatal() --- diff --git a/src/stats/event-exporter-transport-http-post.c b/src/stats/event-exporter-transport-http-post.c index 291c54c673..3e00cb0c46 100644 --- a/src/stats/event-exporter-transport-http-post.c +++ b/src/stats/event-exporter-transport-http-post.c @@ -9,6 +9,7 @@ #include "master-service.h" #include "master-service-settings.h" #include "master-service-ssl-settings.h" +#include "stats-common.h" /* the http client used to export all events with exporter=http-post */ static struct http_client *exporter_http_client; @@ -50,9 +51,6 @@ void event_export_transport_http_post(const struct exporter *exporter, struct http_client_request *req; if (exporter_http_client == NULL) { - const struct master_service_ssl_settings *master_ssl_set = - master_service_settings_get_root_set(master_service, - &master_service_ssl_setting_parser_info); struct ssl_iostream_settings ssl_set; struct http_client_settings set = { diff --git a/src/stats/main.c b/src/stats/main.c index 7502b4d62b..b076592c14 100644 --- a/src/stats/main.c +++ b/src/stats/main.c @@ -5,6 +5,7 @@ #include "ioloop.h" #include "master-service.h" #include "master-service-settings.h" +#include "master-service-ssl-settings.h" #include "stats-settings.h" #include "stats-event-category.h" #include "stats-metrics.h" @@ -13,6 +14,7 @@ #include "client-reader.h" #include "client-http.h" +const struct master_service_ssl_settings *master_ssl_set; struct stats_metrics *stats_metrics; time_t stats_startup_time; @@ -44,8 +46,10 @@ static void main_preinit(void) static void main_init(void) { - stats_settings = master_service_settings_get_root_set(master_service, - &stats_setting_parser_info); + stats_settings = master_service_settings_get_or_fatal(NULL, + &stats_setting_parser_info); + master_ssl_set = master_service_settings_get_or_fatal(NULL, + &master_service_ssl_setting_parser_info); stats_startup_time = ioloop_time; stats_metrics = stats_metrics_init(stats_settings); @@ -64,6 +68,8 @@ static void main_deinit(void) client_http_deinit(); stats_event_categories_deinit(); stats_metrics_deinit(&stats_metrics); + master_service_settings_free(stats_settings); + master_service_settings_free(master_ssl_set); } int main(int argc, char *argv[]) @@ -83,8 +89,14 @@ int main(int argc, char *argv[]) &argc, &argv, ""); if (master_getopt(master_service) > 0) return FATAL_DEFAULT; - if (master_service_settings_read_simple(master_service, set_roots, - &error) < 0) + + const struct master_service_settings_input set_input = { + .roots = set_roots, + .disable_check_settings = TRUE, + }; + struct master_service_settings_output output; + if (master_service_settings_read(master_service, &set_input, + &output, &error) < 0) i_fatal("%s", error); master_service_init_log(master_service); master_service_set_die_callback(master_service, stats_die); diff --git a/src/stats/stats-common.h b/src/stats/stats-common.h index 09af424a98..82a5e96eb8 100644 --- a/src/stats/stats-common.h +++ b/src/stats/stats-common.h @@ -4,6 +4,7 @@ #include "lib.h" #include "stats-settings.h" +extern const struct master_service_ssl_settings *master_ssl_set; extern struct stats_metrics *stats_metrics; extern time_t stats_startup_time; diff --git a/src/stats/stats-settings.c b/src/stats/stats-settings.c index e0315e87d5..224d6a30fd 100644 --- a/src/stats/stats-settings.c +++ b/src/stats/stats-settings.c @@ -183,6 +183,7 @@ const struct setting_parser_info stats_setting_parser_info = { .defaults = &stats_default_settings, .struct_size = sizeof(struct stats_settings), + .pool_offset1 = 1 + offsetof(struct stats_settings, pool), .check_func = stats_settings_check, }; diff --git a/src/stats/stats-settings.h b/src/stats/stats-settings.h index a2fec1bd8c..6d51b7ff13 100644 --- a/src/stats/stats-settings.h +++ b/src/stats/stats-settings.h @@ -124,6 +124,7 @@ struct stats_metric_settings { }; struct stats_settings { + pool_t pool; const char *stats_http_rawlog_dir; ARRAY(struct stats_exporter_settings *) exporters; diff --git a/src/stats/test-stats-common.c b/src/stats/test-stats-common.c index d810ff7b16..ac3350c122 100644 --- a/src/stats/test-stats-common.c +++ b/src/stats/test-stats-common.c @@ -14,6 +14,7 @@ struct event_category child_test_category = { }; pool_t test_pool; +const struct master_service_ssl_settings *master_ssl_set = NULL; struct stats_metrics *stats_metrics = NULL; time_t stats_startup_time;