aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-02-11 17:41:05 +0100
committerMartin Willi <martin@revosec.ch>2014-05-07 14:13:35 +0200
commitd9ae1c68e515e47be2e66090148eee00feaf3e79 (patch)
tree9ccb5877a2da6ddbe8731939eec3bef2b587744f /src/libcharon/plugins
parentc7d4dad66d4f8c566129c973c124a951d0341b6f (diff)
downloadstrongswan-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.c23
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,