aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/plugins/vici/libvici.c8
-rw-r--r--src/libcharon/plugins/vici/suites/test_event.c6
-rw-r--r--src/libcharon/plugins/vici/suites/test_request.c6
-rw-r--r--src/libcharon/plugins/vici/suites/test_socket.c2
-rw-r--r--src/libcharon/plugins/vici/vici_config.c1
-rw-r--r--src/libcharon/plugins/vici/vici_dispatcher.h6
-rw-r--r--src/libcharon/plugins/vici/vici_query.c38
7 files changed, 54 insertions, 13 deletions
diff --git a/src/libcharon/plugins/vici/libvici.c b/src/libcharon/plugins/vici/libvici.c
index 6e3b85a72..d1dadddcb 100644
--- a/src/libcharon/plugins/vici/libvici.c
+++ b/src/libcharon/plugins/vici/libvici.c
@@ -43,7 +43,7 @@ typedef struct {
typedef enum {
WAIT_IDLE = 0,
WAIT_SUCCESS,
- WAIT_FAILED,
+ WAIT_FAILURE,
WAIT_READ_ERROR,
} wait_state_t;
@@ -242,7 +242,7 @@ CALLBACK(on_read, bool,
return wait_result(conn, WAIT_SUCCESS);
case VICI_CMD_UNKNOWN:
case VICI_EVENT_UNKNOWN:
- return wait_result(conn, WAIT_FAILED);
+ return wait_result(conn, WAIT_FAILURE);
case VICI_CMD_REQUEST:
case VICI_EVENT_REGISTER:
case VICI_EVENT_UNREGISTER:
@@ -403,7 +403,7 @@ vici_res_t* vici_submit(vici_req_t *req, vici_conn_t *conn)
case WAIT_READ_ERROR:
errno = conn->error;
break;
- case WAIT_FAILED:
+ case WAIT_FAILURE:
default:
errno = ENOENT;
break;
@@ -712,7 +712,7 @@ int vici_register(vici_conn_t *conn, char *name, vici_event_cb_t cb, void *user)
case WAIT_READ_ERROR:
errno = conn->error;
break;
- case WAIT_FAILED:
+ case WAIT_FAILURE:
default:
errno = ENOENT;
break;
diff --git a/src/libcharon/plugins/vici/suites/test_event.c b/src/libcharon/plugins/vici/suites/test_event.c
index 12fd03107..b923ad393 100644
--- a/src/libcharon/plugins/vici/suites/test_event.c
+++ b/src/libcharon/plugins/vici/suites/test_event.c
@@ -20,7 +20,11 @@
#include <unistd.h>
-#define URI "unix:///tmp/strongswan-vici-event-test"
+#ifdef WIN32
+# define URI "tcp://127.0.0.1:6543"
+#else /* !WIN32 */
+# define URI "unix:///tmp/strongswan-vici-event-test"
+#endif /* !WIN32 */
static void event_cb(void *user, char *name, vici_res_t *ev)
{
diff --git a/src/libcharon/plugins/vici/suites/test_request.c b/src/libcharon/plugins/vici/suites/test_request.c
index 8cb11a7ea..8eeb37bc9 100644
--- a/src/libcharon/plugins/vici/suites/test_request.c
+++ b/src/libcharon/plugins/vici/suites/test_request.c
@@ -20,7 +20,11 @@
#include <unistd.h>
-#define URI "unix:///tmp/strongswan-vici-request-test"
+#ifdef WIN32
+# define URI "tcp://127.0.0.1:6543"
+#else /* !WIN32 */
+# define URI "unix:///tmp/strongswan-vici-request-test"
+#endif /* !WIN32 */
static void encode_section(vici_req_t *req)
{
diff --git a/src/libcharon/plugins/vici/suites/test_socket.c b/src/libcharon/plugins/vici/suites/test_socket.c
index 032445bb0..8d545c6c1 100644
--- a/src/libcharon/plugins/vici/suites/test_socket.c
+++ b/src/libcharon/plugins/vici/suites/test_socket.c
@@ -61,11 +61,13 @@ static struct {
{ "tcp://127.0.0.1:6543", 2 },
{ "tcp://127.0.0.1:6543", 3 },
{ "tcp://127.0.0.1:6543", 7 },
+#ifndef WIN32
{ "unix:///tmp/strongswan-tests-vici-socket", ~0 },
{ "unix:///tmp/strongswan-tests-vici-socket", 1 },
{ "unix:///tmp/strongswan-tests-vici-socket", 2 },
{ "unix:///tmp/strongswan-tests-vici-socket", 3 },
{ "unix:///tmp/strongswan-tests-vici-socket", 7 },
+#endif /* !WIN32 */
};
START_TEST(test_echo)
diff --git a/src/libcharon/plugins/vici/vici_config.c b/src/libcharon/plugins/vici/vici_config.c
index 3f2fec444..2319bddaf 100644
--- a/src/libcharon/plugins/vici/vici_config.c
+++ b/src/libcharon/plugins/vici/vici_config.c
@@ -24,7 +24,6 @@
#include <collections/linked_list.h>
#include <stdio.h>
-#include <netdb.h>
/**
* Magic value for an undefined lifetime
diff --git a/src/libcharon/plugins/vici/vici_dispatcher.h b/src/libcharon/plugins/vici/vici_dispatcher.h
index effe5a670..2297a80bd 100644
--- a/src/libcharon/plugins/vici/vici_dispatcher.h
+++ b/src/libcharon/plugins/vici/vici_dispatcher.h
@@ -29,7 +29,11 @@ typedef enum vici_operation_t vici_operation_t;
/**
* Default socket URI of vici service
*/
-#define VICI_DEFAULT_URI "unix://" IPSEC_PIDDIR "/charon.vici"
+#ifdef WIN32
+# define VICI_DEFAULT_URI "tcp://127.0.0.1:4502"
+#else
+# define VICI_DEFAULT_URI "unix://" IPSEC_PIDDIR "/charon.vici"
+#endif
/**
* Kind of vici operation
diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c
index 9a8e9a4d6..e7c48f4aa 100644
--- a/src/libcharon/plugins/vici/vici_query.c
+++ b/src/libcharon/plugins/vici/vici_query.c
@@ -17,7 +17,9 @@
#include "vici_builder.h"
#include <inttypes.h>
+#ifndef WIN32
#include <sys/utsname.h>
+#endif
#include <daemon.h>
@@ -786,7 +788,6 @@ CALLBACK(list_certs, vici_message_t*,
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();
@@ -794,13 +795,40 @@ CALLBACK(version, vici_message_t*,
b->add_kv(b, "daemon", "%s", lib->ns);
b->add_kv(b, "version", "%s", VERSION);
- if (uname(&utsname) == 0)
+#ifdef WIN32
{
- b->add_kv(b, "sysname", "%s", utsname.sysname);
- b->add_kv(b, "release", "%s", utsname.release);
- b->add_kv(b, "machine", "%s", utsname.machine);
+ OSVERSIONINFOEX osvie;
+
+ memset(&osvie, 0, sizeof(osvie));
+ osvie.dwOSVersionInfoSize = sizeof(osvie);
+
+ if (GetVersionEx((LPOSVERSIONINFO)&osvie))
+ {
+ b->add_kv(b, "sysname", "Windows %s",
+ osvie.wProductType == VER_NT_WORKSTATION ? "Client" : "Server");
+ b->add_kv(b, "release", "%d.%d.%d (SP %d.%d)",
+ osvie.dwMajorVersion, osvie.dwMinorVersion, osvie.dwBuildNumber,
+ osvie.wServicePackMajor, osvie.wServicePackMinor);
+ b->add_kv(b, "machine", "%s",
+#ifdef WIN64
+ "x86_64");
+#else
+ "x86");
+#endif /* !WIN64 */
+ }
}
+#else /* !WIN32 */
+ {
+ struct utsname utsname;
+ 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);
+ }
+ }
+#endif /* !WIN32 */
return b->finalize(b);
}