diff options
Diffstat (limited to 'cpp/src/Ice/Network.h')
-rw-r--r-- | cpp/src/Ice/Network.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/cpp/src/Ice/Network.h b/cpp/src/Ice/Network.h index 66c700dbf23..1643c5eae8f 100644 --- a/cpp/src/Ice/Network.h +++ b/cpp/src/Ice/Network.h @@ -7,8 +7,7 @@ // // ********************************************************************** -#ifndef ICE_NETWORK_H -#define ICE_NETWORK_H +#pragma once #ifdef __hpux # define _XOPEN_SOURCE_EXTENDED @@ -25,7 +24,9 @@ #elif defined(_WIN32) # include <winsock2.h> # include <ws2tcpip.h> +# if !defined(__MINGW32__) typedef int ssize_t; +# endif #else # include <unistd.h> # include <fcntl.h> @@ -86,6 +87,21 @@ typedef int socklen_t; # define NETDB_SUCCESS 0 #endif +#if defined(__MINGW32__) && !defined WSAID_CONNECTEX +# define WSAID_CONNECTEX {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}} +# define WSAID_ACCEPTEX {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}} +# define SO_UPDATE_ACCEPT_CONTEXT 0x700B +# define SO_UPDATE_CONNECT_CONTEXT 0x7010 + typedef BOOL (PASCAL FAR * LPFN_CONNECTEX) (IN SOCKET s, IN const struct sockaddr FAR *name, IN int namelen, + IN PVOID lpSendBuffer OPTIONAL, IN DWORD dwSendDataLength, + OUT LPDWORD lpdwBytesSent, IN LPOVERLAPPED lpOverlapped); + + typedef BOOL (PASCAL FAR * LPFN_ACCEPTEX)(IN SOCKET sListenSocket, IN SOCKET sAcceptSocket, + IN PVOID lpOutputBuffer, IN DWORD dwReceiveDataLength, + IN DWORD dwLocalAddressLength, IN DWORD dwRemoteAddressLength, + OUT LPDWORD lpdwBytesReceived, IN LPOVERLAPPED lpOverlapped); +#endif + namespace IceInternal { @@ -237,5 +253,3 @@ ICE_API void doConnectAsync(SOCKET, const Address&, AsyncInfo&); ICE_API void doFinishConnectAsync(SOCKET, AsyncInfo&); #endif } - -#endif |