aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-06-05 13:10:43 +0200
committerMartin Willi <martin@revosec.ch>2014-06-06 16:28:28 +0200
commitcab59c73fc616c23bf510dd875363da08ce1850c (patch)
tree1fff8a93e0451fb8ef6a17de09a4e264559d3e62 /src/libstrongswan
parentbd19e27ae3295f224bf568d0b7d625a5c6bae8b8 (diff)
downloadstrongswan-cab59c73fc616c23bf510dd875363da08ce1850c.tar.bz2
strongswan-cab59c73fc616c23bf510dd875363da08ce1850c.tar.xz
windows: Use WINAPI call convention for Windows API callbacks
For x86_64 it does not actually matter, but for i686 builds the call convention is different with WINAPI.
Diffstat (limited to 'src/libstrongswan')
-rw-r--r--src/libstrongswan/tests/test_suite.c4
-rw-r--r--src/libstrongswan/threading/windows/thread.c6
-rw-r--r--src/libstrongswan/utils/utils.c2
-rw-r--r--src/libstrongswan/utils/windows.h4
4 files changed, 9 insertions, 7 deletions
diff --git a/src/libstrongswan/tests/test_suite.c b/src/libstrongswan/tests/test_suite.c
index c80c6efd6..00ac31830 100644
--- a/src/libstrongswan/tests/test_suite.c
+++ b/src/libstrongswan/tests/test_suite.c
@@ -138,7 +138,7 @@ static DWORD main_thread;
/**
* APC routine invoked by main thread on worker failure
*/
-static void set_worker_failure(ULONG_PTR dwParam)
+static void WINAPI set_worker_failure(ULONG_PTR dwParam)
{
worker_failed = TRUE;
}
@@ -180,7 +180,7 @@ void test_fail_if_worker_failed()
/**
* Vectored exception handler
*/
-static long eh_handler(PEXCEPTION_POINTERS ei)
+static long WINAPI eh_handler(PEXCEPTION_POINTERS ei)
{
char *ename;
bool old = FALSE;
diff --git a/src/libstrongswan/threading/windows/thread.c b/src/libstrongswan/threading/windows/thread.c
index 2ea0f9a7e..2b273413c 100644
--- a/src/libstrongswan/threading/windows/thread.c
+++ b/src/libstrongswan/threading/windows/thread.c
@@ -378,8 +378,10 @@ void thread_set_active_condvar(CONDITION_VARIABLE *condvar)
/**
* APC to cancel a thread
*/
-static void docancel(private_thread_t *this)
+static void WINAPI docancel(ULONG_PTR dwParam)
{
+ private_thread_t *this = (private_thread_t*)dwParam;
+
/* make sure cancel() does not access this anymore */
threads_lock->lock(threads_lock);
threads_lock->unlock(threads_lock);
@@ -398,7 +400,7 @@ METHOD(thread_t, cancel, void,
if (!this->cancel_pending)
{
this->cancel_pending = TRUE;
- QueueUserAPC((void*)docancel, this->handle, (uintptr_t)this);
+ QueueUserAPC(docancel, this->handle, (uintptr_t)this);
if (this->condvar)
{
WakeAllConditionVariable(this->condvar);
diff --git a/src/libstrongswan/utils/utils.c b/src/libstrongswan/utils/utils.c
index 8ef9a1f33..02a720945 100644
--- a/src/libstrongswan/utils/utils.c
+++ b/src/libstrongswan/utils/utils.c
@@ -247,7 +247,7 @@ static mutex_t *sigint_mutex;
/**
* Control handler to catch ^C
*/
-static BOOL handler(DWORD dwCtrlType)
+static BOOL WINAPI handler(DWORD dwCtrlType)
{
switch (dwCtrlType)
{
diff --git a/src/libstrongswan/utils/windows.h b/src/libstrongswan/utils/windows.h
index b66138644..fd4338455 100644
--- a/src/libstrongswan/utils/windows.h
+++ b/src/libstrongswan/utils/windows.h
@@ -116,14 +116,14 @@ char* strndup(const char *s, size_t n);
* Provided via ws2_32
*/
#ifndef InetNtop
-const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
+const char WINAPI *inet_ntop(int af, const void *src, char *dst, socklen_t size);
#endif
/**
* Provided via ws2_32
*/
#ifndef InetPton
-int inet_pton(int af, const char *src, void *dst);
+int WINAPI inet_pton(int af, const char *src, void *dst);
#endif
/**