summarylogtreecommitdiffstats
path: root/2222-charon-systemd-sighup.patch
diff options
context:
space:
mode:
Diffstat (limited to '2222-charon-systemd-sighup.patch')
-rw-r--r--2222-charon-systemd-sighup.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/2222-charon-systemd-sighup.patch b/2222-charon-systemd-sighup.patch
new file mode 100644
index 000000000000..544612c20755
--- /dev/null
+++ b/2222-charon-systemd-sighup.patch
@@ -0,0 +1,33 @@
+index 5c7bbd779..fc93e2182 100644
+--- a/src/charon-systemd/charon-systemd.c
++++ b/src/charon-systemd/charon-systemd.c
+@@ -241,6 +241,7 @@ static int run()
+ sigset_t set;
+
+ sigemptyset(&set);
++ sigaddset(&set, SIGHUP);
+ sigaddset(&set, SIGTERM);
+ sigprocmask(SIG_BLOCK, &set, NULL);
+
+@@ -262,6 +263,21 @@ static int run()
+ }
+ switch (sig)
+ {
++ case SIGHUP:
++ {
++ DBG1(DBG_DMN, "signal of type SIGHUP received. Reloading "
++ "configuration");
++ if (lib->settings->load_files(lib->settings, lib->conf, FALSE))
++ {
++ charon->load_loggers(charon, NULL, FALSE);
++ lib->plugins->reload(lib->plugins, NULL);
++ }
++ else
++ {
++ DBG1(DBG_DMN, "reloading config failed, keeping old");
++ }
++ break;
++ }
+ case SIGTERM:
+ {
+ DBG1(DBG_DMN, "SIGTERM received, shutting down");