diff options
| author | Martin Willi <martin@revosec.ch> | 2014-02-11 17:41:05 +0100 |
|---|---|---|
| committer | Martin Willi <martin@revosec.ch> | 2014-05-07 14:13:35 +0200 |
| commit | d9ae1c68e515e47be2e66090148eee00feaf3e79 (patch) | |
| tree | 9ccb5877a2da6ddbe8731939eec3bef2b587744f /src/libcharon/plugins | |
| parent | c7d4dad66d4f8c566129c973c124a951d0341b6f (diff) | |
| download | strongswan-d9ae1c68e515e47be2e66090148eee00feaf3e79.tar.bz2 strongswan-d9ae1c68e515e47be2e66090148eee00feaf3e79.tar.xz | |
vici: Add a version command to print daemon and OS version info
Diffstat (limited to 'src/libcharon/plugins')
| -rw-r--r-- | src/libcharon/plugins/vici/vici_query.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c index c34ea0367..8c7a1de34 100644 --- a/src/libcharon/plugins/vici/vici_query.c +++ b/src/libcharon/plugins/vici/vici_query.c @@ -17,6 +17,7 @@ #include "vici_builder.h" #include <inttypes.h> +#include <sys/utsname.h> #include <daemon.h> @@ -336,6 +337,27 @@ CALLBACK(list_sas, vici_message_t*, return b->finalize(b); } +CALLBACK(version, vici_message_t*, + private_vici_query_t *this, char *name, u_int id, vici_message_t *request) +{ + struct utsname utsname; + vici_builder_t *b; + + b = vici_builder_create(); + + b->add_kv(b, "daemon", "%s", lib->ns); + b->add_kv(b, "version", "%s", VERSION); + + if (uname(&utsname) == 0) + { + b->add_kv(b, "sysname", "%s", utsname.sysname); + b->add_kv(b, "release", "%s", utsname.release); + b->add_kv(b, "machine", "%s", utsname.machine); + } + + return b->finalize(b); +} + static void manage_command(private_vici_query_t *this, char *name, vici_command_cb_t cb, bool reg) { @@ -350,6 +372,7 @@ static void manage_commands(private_vici_query_t *this, bool reg) { this->dispatcher->manage_event(this->dispatcher, "list-sa", reg); manage_command(this, "list-sas", list_sas, reg); + manage_command(this, "version", version, reg); } METHOD(vici_query_t, destroy, void, |
