From: Gert Doering Date: Thu, 24 Nov 2011 20:09:36 +0000 (+0100) Subject: work around inet_ntop/inet_pton problems for MSVC builds on WinXP X-Git-Tag: v2.3-alpha1~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53fb2c5c465ea97fccdc8be1823fff2616f08b50;p=thirdparty%2Fopenvpn.git work around inet_ntop/inet_pton problems for MSVC builds on WinXP always use our built-in replacement functions now, even if building on Win7 (which has inet_ntop/inet_pton in the system libraries) because the resulting binary will then fail on WinXP. Signed-off-by: Gert Doering Acked-by: David Sommerseth Signed-off-by: David Sommerseth --- diff --git a/socket.c b/socket.c index 5302eca2b..c8a86ea6f 100644 --- a/socket.c +++ b/socket.c @@ -3083,11 +3083,12 @@ link_socket_write_udp_posix_sendmsg (struct link_socket *sock, /* * inet_ntop() and inet_pton() wrap-implementations using * WSAAddressToString() and WSAStringToAddress() functions + * + * this is needed as long as we support running OpenVPN on WinXP */ -#ifndef _MSC_VER const char * -inet_ntop(int af, const void *src, char *dst, socklen_t size) +openvpn_inet_ntop(int af, const void *src, char *dst, socklen_t size) { struct sockaddr_storage ss; unsigned long s = size; @@ -3111,7 +3112,7 @@ inet_ntop(int af, const void *src, char *dst, socklen_t size) } int -inet_pton(int af, const char *src, void *dst) +openvpn_inet_pton(int af, const char *src, void *dst) { struct sockaddr_storage ss; int size = sizeof(ss); @@ -3134,8 +3135,6 @@ inet_pton(int af, const char *src, void *dst) return 0; } -#endif - int socket_recv_queue (struct link_socket *sock, int maxsize) { diff --git a/win32.h b/win32.h index 9ee95ef44..23c04bede 100644 --- a/win32.h +++ b/win32.h @@ -276,10 +276,12 @@ char *get_win_sys_path (void); /* call self in a subprocess */ void fork_to_self (const char *cmdline); -#ifndef _MSC_VER -const char *inet_ntop(int af, const void *src, char *dst, socklen_t size); -int inet_pton(int af, const char *src, void *st); -#endif + +const char *openvpn_inet_ntop(int af, const void *src, + char *dst, socklen_t size); +int openvpn_inet_pton(int af, const char *src, void *dst); +#define inet_ntop(af,src,dst,size) openvpn_inet_ntop(af,src,dst,size) +#define inet_pton(af,src,dst) openvpn_inet_pton(af,src,dst) /* Find temporary directory */ const char *win_get_tempdir();