summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Network.h')
-rw-r--r--cpp/src/Ice/Network.h22
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