diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2005-10-17 21:22:18 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2005-10-17 21:22:18 +0000 |
commit | 8b00a766ff6986a76a794e3b21539023910dacd3 (patch) | |
tree | 3376f97726ebbc4925c9e67ee4bbbe40530f8f5e /winsup/cygwin/autoload.cc | |
parent | 9276ec15a76f50b218d539a63c8eb5b186457421 (diff) | |
download | cygnal-8b00a766ff6986a76a794e3b21539023910dacd3.tar.gz cygnal-8b00a766ff6986a76a794e3b21539023910dacd3.tar.bz2 cygnal-8b00a766ff6986a76a794e3b21539023910dacd3.zip |
* autoload.cc: Never load wsock32.dll. Load all wsock32 function
from ws2_32. Rearrange symbol order accordingly. None of the ws2_32
functions is optional right now.
(wsadata): Move from net.cc here. Define NO_COPY.
(wsock_init): Drop unused symbols ws2_32_handle and wsock32_handle.
(load_wsock32): Remove.
(WSACleanup): Remove.
* fhandler_socket.cc: Drop Winsock 1 accommodations throughout.
(fhandler_socket::readv): Accomodate new POSIX style struct msghdr.
(fhandler_socket::writev): Ditto.
(fhandler_socket::recvmsg): Ditto. Handle "old" applications using
former struct msghdr correctly.
* net.cc: Drop Winsock 1 accommodations throughout.
(wsadata): Move definition to autoload.cc.
(set_socket_inheritance): Remove.
(convert_ws1_ip_optname): New static function to convert Winsock1
IPPROTO_IP option values into Winsock2 IPPROTO_IP option values.
(cygwin_setsockopt): Remove wrong and incomplete cleartext printing
of optname. For "old" applications, convert optname from Winsock1
to Winsock2 values before using them. Add comment to describe the
IP_TOS weirdness on W2K and above.
(cygwin_getsockopt): Remove wrong and incomplete cleartext printing
of optname. For "old" applications, convert optname from Winsock1
to Winsock2 values before using them.
* select.cc (start_thread_socket): Forget about winsock2_active.
* winsup.h (wsock32_handle): Remove declaration.
(ws2_32_handle): Ditto.
(netapi32_handle): Ditto.
(wsadata): Ditto.
(winsock2_active): Remove definition.
* include/cygwin/socket.h: Change formatting slightly.
(socklen_t): Move definition up in file.
(struct msghdr): Convert to POSIX style.
(struct cmsghdr): New type.
(CMSG_ALIGN): New macro.
(CMSG_LEN): Ditto.
(CMSG_SPACE): Ditto.
(CMSG_FIRSTHDR): Ditto.
(CMSG_NXTHDR): Ditto.
(CMSG_DATA): Ditto.
(SCM_RIGHTS): Ditto.
(struct OLD_msghdr): Define old msghdr structure for Cygwin internal
purposes.
(MSG_TRUNC): New macro.
(MSG_CTRUNC): Ditto.
(IP_OPTIONS): Redefine IPPROTO_IP option values to Winsock2 values.
Keep Winsock1 values for Cygwin internal purposes.
* include/cygwin/version.h: Bump API minor version.
(CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR): Define to check for
applications using old struct msghdr.
(CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES): Define to check for
applications using old Winsock1 IPPROTO_IP values.
Diffstat (limited to 'winsup/cygwin/autoload.cc')
-rw-r--r-- | winsup/cygwin/autoload.cc | 111 |
1 files changed, 49 insertions, 62 deletions
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 5f0b5ddf3..8ac707edb 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -244,6 +244,7 @@ std_dll_init () /* Initialization function for winsock stuff. */ bool NO_COPY wsock_started = 0; +WSADATA NO_COPY wsadata; __attribute__ ((used, noinline, regparm(1))) static long long wsock_init () { @@ -251,16 +252,6 @@ wsock_init () struct func_info *func = (struct func_info *) __builtin_return_address (0); struct dll_info *dll = func->dll; - __asm__ (" \n\ - .section .ws2_32_info \n\ - .equ _ws2_32_handle,.ws2_32_info + 4 \n\ - .global _ws2_32_handle \n\ - .section .wsock32_info \n\ - .equ _wsock32_handle,.wsock32_info + 4 \n\ - .global _wsock32_handle \n\ - .text \n\ - "); - while (InterlockedIncrement (&here)) { InterlockedDecrement (&here); @@ -305,7 +296,6 @@ wsock_init () return ret.ll; } -LoadDLLprime (wsock32, _wsock_init) LoadDLLprime (ws2_32, _wsock_init) LoadDLLfunc (AccessCheck, 32, advapi32) @@ -452,57 +442,54 @@ LoadDLLfunc (SetProcessWindowStation, 4, user32) LoadDLLfunc (SetTimer, 16, user32) LoadDLLfunc (SetUserObjectSecurity, 12, user32) -LoadDLLfuncEx (load_wsock32, 0, wsock32, 1) // non-existent function forces wsock32 load -LoadDLLfunc (WSAAsyncSelect, 16, wsock32) -LoadDLLfunc (WSACleanup, 0, wsock32) -LoadDLLfunc (WSAGetLastError, 0, wsock32) -LoadDLLfunc (WSASetLastError, 4, wsock32) -// LoadDLLfunc (WSAStartup, 8, wsock32) -LoadDLLfunc (__WSAFDIsSet, 8, wsock32) -LoadDLLfunc (accept, 12, wsock32) -LoadDLLfunc (bind, 12, wsock32) -LoadDLLfunc (closesocket, 4, wsock32) -LoadDLLfunc (connect, 12, wsock32) -LoadDLLfunc (gethostbyaddr, 12, wsock32) -LoadDLLfunc (gethostbyname, 4, wsock32) -LoadDLLfuncEx2 (gethostname, 8, wsock32, 1, 1) -LoadDLLfunc (getpeername, 12, wsock32) -LoadDLLfunc (getprotobyname, 4, wsock32) -LoadDLLfunc (getprotobynumber, 4, wsock32) -LoadDLLfunc (getservbyname, 8, wsock32) -LoadDLLfunc (getservbyport, 8, wsock32) -LoadDLLfunc (getsockname, 12, wsock32) -LoadDLLfunc (getsockopt, 20, wsock32) -LoadDLLfunc (inet_addr, 4, wsock32) -LoadDLLfunc (inet_network, 4, wsock32) -LoadDLLfunc (inet_ntoa, 4, wsock32) -LoadDLLfunc (ioctlsocket, 12, wsock32) -LoadDLLfunc (listen, 8, wsock32) -LoadDLLfunc (rcmd, 24, wsock32) -LoadDLLfunc (recv, 16, wsock32) -LoadDLLfunc (recvfrom, 24, wsock32) -LoadDLLfunc (rexec, 24, wsock32) -LoadDLLfunc (rresvport, 4, wsock32) -LoadDLLfunc (select, 20, wsock32) -LoadDLLfunc (send, 16, wsock32) -LoadDLLfunc (sendto, 24, wsock32) -LoadDLLfunc (setsockopt, 20, wsock32) -LoadDLLfunc (shutdown, 8, wsock32) -LoadDLLfunc (socket, 12, wsock32) - -LoadDLLfuncEx (WSACloseEvent, 4, ws2_32, 1) -LoadDLLfuncEx (WSACreateEvent, 0, ws2_32, 1) -LoadDLLfuncEx (WSADuplicateSocketA, 12, ws2_32, 1) -LoadDLLfuncEx (WSAGetOverlappedResult, 20, ws2_32, 1) -LoadDLLfuncEx (WSARecv, 28, ws2_32, 1) -LoadDLLfuncEx (WSARecvFrom, 36, ws2_32, 1) -LoadDLLfuncEx (WSASend, 28, ws2_32, 1) -LoadDLLfuncEx (WSASendTo, 36, ws2_32, 1) -LoadDLLfuncEx (WSASetEvent, 4, ws2_32, 1) -LoadDLLfuncEx (WSASocketA, 24, ws2_32, 1) -LoadDLLfuncEx (WSAWaitForMultipleEvents, 20, ws2_32, 1) -LoadDLLfuncEx (WSAEventSelect, 12, ws2_32, 1) -LoadDLLfuncEx (WSAEnumNetworkEvents, 12, ws2_32, 1) +LoadDLLfunc (accept, 12, ws2_32) +LoadDLLfunc (bind, 12, ws2_32) +LoadDLLfunc (closesocket, 4, ws2_32) +LoadDLLfunc (connect, 12, ws2_32) +LoadDLLfunc (gethostbyaddr, 12, ws2_32) +LoadDLLfunc (gethostbyname, 4, ws2_32) +LoadDLLfuncEx2 (gethostname, 8, ws2_32, 1, 1) +LoadDLLfunc (getpeername, 12, ws2_32) +LoadDLLfunc (getprotobyname, 4, ws2_32) +LoadDLLfunc (getprotobynumber, 4, ws2_32) +LoadDLLfunc (getservbyname, 8, ws2_32) +LoadDLLfunc (getservbyport, 8, ws2_32) +LoadDLLfunc (getsockname, 12, ws2_32) +LoadDLLfunc (getsockopt, 20, ws2_32) +LoadDLLfunc (inet_addr, 4, ws2_32) +LoadDLLfunc (inet_network, 4, ws2_32) +LoadDLLfunc (inet_ntoa, 4, ws2_32) +LoadDLLfunc (ioctlsocket, 12, ws2_32) +LoadDLLfunc (listen, 8, ws2_32) +LoadDLLfunc (rcmd, 24, ws2_32) +LoadDLLfunc (recv, 16, ws2_32) +LoadDLLfunc (recvfrom, 24, ws2_32) +LoadDLLfunc (rexec, 24, ws2_32) +LoadDLLfunc (rresvport, 4, ws2_32) +LoadDLLfunc (select, 20, ws2_32) +LoadDLLfunc (send, 16, ws2_32) +LoadDLLfunc (sendto, 24, ws2_32) +LoadDLLfunc (setsockopt, 20, ws2_32) +LoadDLLfunc (shutdown, 8, ws2_32) +LoadDLLfunc (socket, 12, ws2_32) +LoadDLLfunc (WSAAsyncSelect, 16, ws2_32) +LoadDLLfunc (WSACloseEvent, 4, ws2_32) +LoadDLLfunc (WSACreateEvent, 0, ws2_32) +LoadDLLfunc (WSADuplicateSocketA, 12, ws2_32) +LoadDLLfunc (WSAGetLastError, 0, ws2_32) +LoadDLLfunc (WSAGetOverlappedResult, 20, ws2_32) +LoadDLLfunc (WSARecv, 28, ws2_32) +LoadDLLfunc (WSARecvFrom, 36, ws2_32) +LoadDLLfunc (WSASend, 28, ws2_32) +LoadDLLfunc (WSASendTo, 36, ws2_32) +LoadDLLfunc (WSASetEvent, 4, ws2_32) +LoadDLLfunc (WSASetLastError, 4, ws2_32) +LoadDLLfunc (WSASocketA, 24, ws2_32) +// LoadDLLfunc (WSAStartup, 8, ws2_32) +LoadDLLfunc (WSAWaitForMultipleEvents, 20, ws2_32) +LoadDLLfunc (WSAEventSelect, 12, ws2_32) +LoadDLLfunc (WSAEnumNetworkEvents, 12, ws2_32) +LoadDLLfunc (__WSAFDIsSet, 8, ws2_32) LoadDLLfuncEx (GetIfTable, 12, iphlpapi, 1) LoadDLLfuncEx (GetIfEntry, 4, iphlpapi, 1) |