summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_socket.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-07-06 13:52:19 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-07-06 13:52:19 +0000
commitdb80f635c109c7b7d7ef4b96d6c7ebbd8a4429ba (patch)
tree7ff0f9525a2c366fd03956e046c6c5f9e1ddb4d9 /winsup/cygwin/fhandler_socket.cc
parentdc45bfa0bf7fcb36a00388a629b56ea8e5fabda3 (diff)
downloadcygnal-db80f635c109c7b7d7ef4b96d6c7ebbd8a4429ba.tar.gz
cygnal-db80f635c109c7b7d7ef4b96d6c7ebbd8a4429ba.tar.bz2
cygnal-db80f635c109c7b7d7ef4b96d6c7ebbd8a4429ba.zip
In terms of network related functionality, rely on Winsock definitions
as much as possible: * dtable.cc: Drop including sys/socket.h. * fhandler_procnet.cc: Change includes accordingly. * fhandler_socket.cc: Ditto. (fhandler_socket::listen): Avoid gcc error message initializing sin6. (LPFN_WSARECVMSG): Only define when building against w32api headers. * net.cc: Change includes accordingly. Define USE_SYS_TYPES_FD_SET and __WSA_ERR_MACROS_DEFINED. Define _INC_NETIOAPI temporarily and explain why. (struct _IP_ADAPTER_UNICAST_ADDRESS_LH): Only define when building against w32api headers. (struct _IP_ADAPTER_ADDRESSES_LH): Ditto. (SIO_GET_INTERFACE_LIST): Ditto. (ws_freeaddrinfo): Rename from freeaddrinfo so as not to collide with Winsock declaration. Change througout. (ws_getaddrinfo): Ditto. (ws_getnameinfo): Ditto. * select.cc: Include netdb.h after defining USE_SYS_TYPES_FD_SET. * syslog.cc: Drop including netinet/in.h. Define USE_SYS_TYPES_FD_SET and include ws2tcpip.h. * include/netdb.h (struct addrinfo): Don't define when building Cygwin. * include/cygwin/if.h: Don't declare if_xxx functions when building Cygwin. * include/cygwin/in.h: Disable most definitions when building Cygwin. * include/cygwin/socket.h: Disable sockaddr and sockaddr_storage definitions when building Cygwin. Same for MCAST_INCLUDE/MCAST_EXCLUDE. * libc/inet_addr.c: Don't define __INSIDE_CYGWIN__ nor __INSIDE_CYGWIN_NET__. * libc/inet_network.c: Ditto. * libc/minires.h: Drop redundant inclusion of netdb.h. Define __INSIDE_CYGWIN_NET__ only before including netdb.h and resolver headers.
Diffstat (limited to 'winsup/cygwin/fhandler_socket.cc')
-rw-r--r--winsup/cygwin/fhandler_socket.cc32
1 files changed, 13 insertions, 19 deletions
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index f78002801..cb6d376fd 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -12,24 +12,21 @@
/* #define DEBUG_NEST_ON 1 */
#define __INSIDE_CYGWIN_NET__
+#define USE_SYS_TYPES_FD_SET
#include "winsup.h"
-#include <sys/un.h>
-#include <asm/byteorder.h>
-
-#include <stdlib.h>
-#define USE_SYS_TYPES_FD_SET
-#include <winsock2.h>
-#include <mswsock.h>
-#include <iphlpapi.h>
#include "cygerrno.h"
#include "security.h"
-#include "cygwin/version.h"
-#include "perprocess.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
#include "cygheap.h"
+#include <ws2tcpip.h>
+#include <mswsock.h>
+#include <iphlpapi.h>
+#include <asm/byteorder.h>
+#include "cygwin/version.h"
+#include "perprocess.h"
#include "shared_info.h"
#include "sigproc.h"
#include "wininfo.h"
@@ -37,7 +34,7 @@
#include <sys/param.h>
#include <sys/acl.h>
#include "cygtls.h"
-#include "cygwin/in6.h"
+#include <sys/un.h>
#include "ntdll.h"
#include "miscfuncs.h"
@@ -1129,14 +1126,9 @@ fhandler_socket::listen (int backlog)
}
else if (get_addr_family () == AF_INET6)
{
- struct sockaddr_in6 sin6 =
- {
- sin6_family: AF_INET6,
- sin6_port: 0,
- sin6_flowinfo: 0,
- sin6_addr: {{IN6ADDR_ANY_INIT}},
- sin6_scope_id: 0
- };
+ struct sockaddr_in6 sin6;
+ memset (&sin6, 0, sizeof sin6);
+ sin6.sin6_family = AF_INET6;
if (!::bind (get_socket (), (struct sockaddr *) &sin6, sizeof sin6))
res = ::listen (get_socket (), backlog);
}
@@ -1359,10 +1351,12 @@ fhandler_socket::readv (const struct iovec *const iov, const int iovcnt,
}
extern "C" {
+#ifndef __MINGW64_VERSION_MAJOR
#define WSAID_WSARECVMSG \
{0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}};
typedef int (WSAAPI *LPFN_WSARECVMSG)(SOCKET,LPWSAMSG,LPDWORD,LPWSAOVERLAPPED,
LPWSAOVERLAPPED_COMPLETION_ROUTINE);
+#endif
int WSAAPI WSASendMsg(SOCKET,LPWSAMSG,DWORD,LPDWORD, LPWSAOVERLAPPED,
LPWSAOVERLAPPED_COMPLETION_ROUTINE);
};