aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/vici/vici_control.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-09-24 11:17:29 +0200
committerMartin Willi <martin@revosec.ch>2014-09-24 11:17:29 +0200
commit6fe02dda752cbb2c2389a3367a3b6e04add43425 (patch)
tree4c34d40922d0848bfa682b4819d983e4ff57c982 /src/libcharon/plugins/vici/vici_control.c
parent2dee0a85a6923da94d669dc5de337dc5ef1806e7 (diff)
parent575d3ab19a73736bfa25833e1102d3473e5bc25a (diff)
downloadstrongswan-6fe02dda752cbb2c2389a3367a3b6e04add43425.tar.bz2
strongswan-6fe02dda752cbb2c2389a3367a3b6e04add43425.tar.xz
Merge branch 'systemd'
Introduces a systemd specific charon-systemd IKE daemon based on libcharon. Uses systemd APIs for startup control and journal logging and a new systemd service unit using swanctl as configuration backend.
Diffstat (limited to 'src/libcharon/plugins/vici/vici_control.c')
-rw-r--r--src/libcharon/plugins/vici/vici_control.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcharon/plugins/vici/vici_control.c b/src/libcharon/plugins/vici/vici_control.c
index 3cd008162..292a40032 100644
--- a/src/libcharon/plugins/vici/vici_control.c
+++ b/src/libcharon/plugins/vici/vici_control.c
@@ -450,6 +450,17 @@ CALLBACK(uninstall, vici_message_t*,
return send_reply(this, "policy '%s' not found", child);
}
+CALLBACK(reload_settings, vici_message_t*,
+ private_vici_control_t *this, char *name, u_int id, vici_message_t *request)
+{
+ if (lib->settings->load_files(lib->settings, lib->conf, FALSE))
+ {
+ lib->plugins->reload(lib->plugins, NULL);
+ return send_reply(this, NULL);
+ }
+ return send_reply(this, "reloading '%s' failed", lib->conf);
+}
+
static void manage_command(private_vici_control_t *this,
char *name, vici_command_cb_t cb, bool reg)
{
@@ -466,6 +477,7 @@ static void manage_commands(private_vici_control_t *this, bool reg)
manage_command(this, "terminate", terminate, reg);
manage_command(this, "install", install, reg);
manage_command(this, "uninstall", uninstall, reg);
+ manage_command(this, "reload-settings", reload_settings, reg);
this->dispatcher->manage_event(this->dispatcher, "control-log", reg);
}