diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2012-07-06 13:52:19 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2012-07-06 13:52:19 +0000 |
commit | db80f635c109c7b7d7ef4b96d6c7ebbd8a4429ba (patch) | |
tree | 7ff0f9525a2c366fd03956e046c6c5f9e1ddb4d9 /winsup/cygwin/fhandler_socket.cc | |
parent | dc45bfa0bf7fcb36a00388a629b56ea8e5fabda3 (diff) | |
download | cygnal-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.cc | 32 |
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); }; |