fb7efbf
From 53003ef7b748e005a01687337bb36763f60d4adc Mon Sep 17 00:00:00 2001
fb7efbf
From: Thomas Blume <Thomas.Blume@suse.com>
fb7efbf
Date: Mon, 29 Jun 2015 11:26:27 +0200
fb7efbf
Subject: [PATCH 05/47] Reload manager defaults at daemon-reload
fb7efbf
fb7efbf
"systemctl daemon-reload" should also update the manager defaults from
fb7efbf
/etc/systemd/system.conf.
fb7efbf
For details, see:
fb7efbf
http://lists.freedesktop.org/archives/systemd-devel/2015-June/033062.html
fb7efbf
fb7efbf
Amended to use  manager_set_defaults() as common function.
fb7efbf
---
fb7efbf
 src/core/main.c | 42 ++++++++++++++++++++++++++++--------------
fb7efbf
 1 file changed, 28 insertions(+), 14 deletions(-)
fb7efbf
fb7efbf
diff --git a/src/core/main.c b/src/core/main.c
fb7efbf
index 523f0ce..186cfdd 100644
fb7efbf
--- a/src/core/main.c
fb7efbf
+++ b/src/core/main.c
fb7efbf
@@ -685,6 +685,26 @@ static int parse_config_file(void) {
fb7efbf
         return 0;
fb7efbf
 }
fb7efbf
 
fb7efbf
+static void manager_set_defaults(Manager *m) {
fb7efbf
+
fb7efbf
+        assert(m);
fb7efbf
+
fb7efbf
+        m->default_timer_accuracy_usec = arg_default_timer_accuracy_usec;
fb7efbf
+        m->default_std_output = arg_default_std_output;
fb7efbf
+        m->default_std_error = arg_default_std_error;
fb7efbf
+        m->default_timeout_start_usec = arg_default_timeout_start_usec;
fb7efbf
+        m->default_timeout_stop_usec = arg_default_timeout_stop_usec;
fb7efbf
+        m->default_restart_usec = arg_default_restart_usec;
fb7efbf
+        m->default_start_limit_interval = arg_default_start_limit_interval;
fb7efbf
+        m->default_start_limit_burst = arg_default_start_limit_burst;
fb7efbf
+        m->default_cpu_accounting = arg_default_cpu_accounting;
fb7efbf
+        m->default_blockio_accounting = arg_default_blockio_accounting;
fb7efbf
+        m->default_memory_accounting = arg_default_memory_accounting;
fb7efbf
+
fb7efbf
+        manager_set_default_rlimits(m, arg_default_rlimit);
fb7efbf
+        manager_environment_add(m, NULL, arg_default_environment);
fb7efbf
+}
fb7efbf
+
fb7efbf
 static int parse_argv(int argc, char *argv[]) {
fb7efbf
 
fb7efbf
         enum {
fb7efbf
@@ -1630,28 +1650,15 @@ int main(int argc, char *argv[]) {
fb7efbf
         }
fb7efbf
 
fb7efbf
         m->confirm_spawn = arg_confirm_spawn;
fb7efbf
-        m->default_timer_accuracy_usec = arg_default_timer_accuracy_usec;
fb7efbf
-        m->default_std_output = arg_default_std_output;
fb7efbf
-        m->default_std_error = arg_default_std_error;
fb7efbf
-        m->default_restart_usec = arg_default_restart_usec;
fb7efbf
-        m->default_timeout_start_usec = arg_default_timeout_start_usec;
fb7efbf
-        m->default_timeout_stop_usec = arg_default_timeout_stop_usec;
fb7efbf
-        m->default_start_limit_interval = arg_default_start_limit_interval;
fb7efbf
-        m->default_start_limit_burst = arg_default_start_limit_burst;
fb7efbf
-        m->default_cpu_accounting = arg_default_cpu_accounting;
fb7efbf
-        m->default_blockio_accounting = arg_default_blockio_accounting;
fb7efbf
-        m->default_memory_accounting = arg_default_memory_accounting;
fb7efbf
         m->runtime_watchdog = arg_runtime_watchdog;
fb7efbf
         m->shutdown_watchdog = arg_shutdown_watchdog;
fb7efbf
-
fb7efbf
         m->userspace_timestamp = userspace_timestamp;
fb7efbf
         m->kernel_timestamp = kernel_timestamp;
fb7efbf
         m->initrd_timestamp = initrd_timestamp;
fb7efbf
         m->security_start_timestamp = security_start_timestamp;
fb7efbf
         m->security_finish_timestamp = security_finish_timestamp;
fb7efbf
 
fb7efbf
-        manager_set_default_rlimits(m, arg_default_rlimit);
fb7efbf
-        manager_environment_add(m, NULL, arg_default_environment);
fb7efbf
+        manager_set_defaults(m);
fb7efbf
         manager_set_show_status(m, arg_show_status);
fb7efbf
         manager_set_first_boot(m, empty_etc);
fb7efbf
 
fb7efbf
@@ -1763,6 +1770,13 @@ int main(int argc, char *argv[]) {
fb7efbf
 
fb7efbf
                 case MANAGER_RELOAD:
fb7efbf
                         log_info("Reloading.");
fb7efbf
+
fb7efbf
+                        r = parse_config_file();
fb7efbf
+                        if (r < 0)
fb7efbf
+                                log_error("Failed to parse config file.");
fb7efbf
+
fb7efbf
+                        manager_set_defaults(m);
fb7efbf
+
fb7efbf
                         r = manager_reload(m);
fb7efbf
                         if (r < 0)
fb7efbf
                                 log_error_errno(r, "Failed to reload: %m");
fb7efbf
-- 
fb7efbf
2.5.0
fb7efbf