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");