From cab59c73fc616c23bf510dd875363da08ce1850c Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 5 Jun 2014 13:10:43 +0200 Subject: 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. --- src/libcharon/plugins/kernel_iph/kernel_iph_net.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/libcharon/plugins/kernel_iph/kernel_iph_net.c') diff --git a/src/libcharon/plugins/kernel_iph/kernel_iph_net.c b/src/libcharon/plugins/kernel_iph/kernel_iph_net.c index 68b753792..871067b1a 100644 --- a/src/libcharon/plugins/kernel_iph/kernel_iph_net.c +++ b/src/libcharon/plugins/kernel_iph/kernel_iph_net.c @@ -355,9 +355,11 @@ typedef struct { /** * NotifyIpInterfaceChange() callback */ -static void change_interface(private_kernel_iph_net_t *this, - MIB_IPINTERFACE_ROW_FIXUP *row, MIB_NOTIFICATION_TYPE type) +static void WINAPI change_interface(void *user, PMIB_IPINTERFACE_ROW row_badal, + MIB_NOTIFICATION_TYPE type) { + private_kernel_iph_net_t *this = user; + MIB_IPINTERFACE_ROW_FIXUP* row = (MIB_IPINTERFACE_ROW_FIXUP*)row_badal; IP_ADAPTER_ADDRESSES addrs[64], *current; ULONG res, size = sizeof(addrs); @@ -757,7 +759,8 @@ kernel_iph_net_t *kernel_iph_net_create() .mutex = mutex_create(MUTEX_TYPE_DEFAULT), .ifaces = linked_list_create(), ); - + /* PIPINTERFACE_CHANGE_CALLBACK is not using WINAPI in MinGW, which seems + * to be wrong. Force a cast to our WINAPI call */ res = NotifyIpInterfaceChange(AF_UNSPEC, (void*)change_interface, this, TRUE, &this->changes); if (res != NO_ERROR) -- cgit v1.2.3