]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
stats: Use master_service_settings_get_or_fatal()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 5 Jan 2023 03:14:17 +0000 (05:14 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Nov 2023 12:11:41 +0000 (14:11 +0200)
src/stats/event-exporter-transport-http-post.c
src/stats/main.c
src/stats/stats-common.h
src/stats/stats-settings.c
src/stats/stats-settings.h
src/stats/test-stats-common.c

index 291c54c673ed2c8637382d76d490c34387a9898a..3e00cb0c466901f234e036612a5b35f60c26312f 100644 (file)
@@ -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 = {
index 7502b4d62b75c5a5d70c4aae0ec72755cd3d068a..b076592c1465c76d65dd24eb7886309b375e53be 100644 (file)
@@ -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);
index 09af424a98fbb2c0c61d0cec8520a16188cd58e4..82a5e96eb887431014f09ca3b27b7b90fea39876 100644 (file)
@@ -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;
 
index e0315e87d502f113e11bc313b1763093570b673c..224d6a30fdcc15d2f5439d3d63669e1ecbbc3777 100644 (file)
@@ -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,
 };
 
index a2fec1bd8c69674bec8b641021edca2c602dae90..6d51b7ff138e1950a26d6db6e1460b20a4e5841c 100644 (file)
@@ -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;
index d810ff7b1652a165bc48365a340277ac5507bc5b..ac3350c1224d0bc3c7015d63d0c9ef0c517a87cd 100644 (file)
@@ -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;