Commit Graph

946 Commits

Author SHA1 Message Date
Zebediah Figura 037fccc0df server: Do not send messages for events that are not currently being selected for.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-13 10:41:25 +02:00
Zebediah Figura 11102116ac ws2_32/tests: Verify that recv() does not reset a pending FD_CLOSE.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-13 10:41:18 +02:00
Zebediah Figura 44a3c70d77 server: Reset the reported event mask in set_socket_event only when using window messages.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-13 10:41:12 +02:00
Zebediah Figura 9fd8a298dd ws2_32/tests: Add some tests for shutdown with completion ports.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 10:43:07 +02:00
Zebediah Figura ae76d94e55 ws2_32/tests: Clean up and expand tests for DisconnectEx().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 10:43:07 +02:00
Zebediah Figura c64f454808 ws2_32/tests: Add some tests for shutdown().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 20:34:07 +02:00
Zebediah Figura 32c095b0da ws2_32/tests: Add more tests for connect() and ConnectEx() with completion ports.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 20:34:05 +02:00
Zebediah Figura 19246e5089 ws2_32/tests: Do not close the port passed to CreateIoCompletionPort separately from the port returned.
They are the same port handle.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 20:34:03 +02:00
Zebediah Figura 9e448142c6 ws2_32/tests: Test calling ConnectEx() on a socket which is being accepted into.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-10 20:33:34 +02:00
Zebediah Figura 258cd1cdbc ws2_32/tests: Add a couple of tests for passing empty buffers to recv().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-10 20:33:34 +02:00
Zebediah Figura cb117a1a15 ws2_32/tests: Clean up and expand tests for WSAPoll().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-10 20:33:34 +02:00
Zebediah Figura 1f35115360 ws2_32/tests: Add some tests for nonblocking async recv().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Zebediah Figura 025d154463 ws2_32/tests: Always return overlapped sockets from tcp_socketpair().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 09:34:44 +02:00
Zebediah Figura 0abc324571 ws2_32: Return TRUE from WSAGetOverlappedResult() if the NT status denotes success.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 09:34:42 +02:00
Zebediah Figura 5a8dc6cd2e ws2_32: Use NtStatusToWSAError() in WSAGetOverlappedResult().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 09:34:40 +02:00
Zebediah Figura 54a39d5779 ws2_32: Add more status codes to NtStatusToWSAError().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 09:34:37 +02:00
Zebediah Figura 0f9d9a0326 ws2_32: Map EINPROGRESS to STATUS_DEVICE_NOT_READY.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 08:12:05 +02:00
Zebediah Figura 44c395d616 ws2_32: Map EFAULT to STATUS_ACCESS_VIOLATION.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 08:11:48 +02:00
Zebediah Figura cbd4f85ad3 ws2_32: Map ENOTCONN to STATUS_INVALID_CONNECTION.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 08:11:28 +02:00
Zebediah Figura 7a934b708c ws2_32: Map EADDRINUSE to STATUS_SHARING_VIOLATION.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 10:19:48 +02:00
Zebediah Figura 08da4ba927 ws2_32: Map EWOULDBLOCK to STATUS_DEVICE_NOT_READY.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 10:19:03 +02:00
Zebediah Figura 9195da83b9 ws2_32/tests: Add some tests for WSAGetOverlappedResult() status mapping.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-04 09:37:36 +02:00
Zebediah Figura b9cfd6eddb ws2_32: Move namespace provider stubs to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-04 09:37:31 +02:00
Zebediah Figura ec6940cd3f ws2_32: Move byte order conversion functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-04 09:37:28 +02:00
Zebediah Figura 615028f8ba ws2_32: Move address/string conversion functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-04 09:37:25 +02:00
Zebediah Figura cfdaa7fdaf ws2_32: Move service lookup functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:07:28 +02:00
Zebediah Figura 5d9fe03637 ws2_32: Move protocol lookup functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:07:26 +02:00
Zebediah Figura 877e3e24d4 ws2_32: Move name info functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:07:24 +02:00
Zebediah Figura ec9f311930 ws2_32: Move host lookup functions to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:07:21 +02:00
Zebediah Figura e30b16d738 ws2_32: Move getaddrinfo() and related functions to a separate file.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:07:18 +02:00
Zebediah Figura 2deb8c2825 ws2_32: Don't call free_per_thread_data() on process exit.
It is redundant.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura adb138c489 ws2_32: Do not free a static critical section.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura 2adcb77c3e ws2_32/tests: Add some tests for calling methods on a connecting socket.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura c03d345ffc ws2_32/tests: Rewrite test_events().
Separate the tests by event type, make them much more exhaustive, and use a
simpler method of validating event sequences.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura 055ed95a24 ws2_32/tests: Add some tests for bind().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura b7c3135444 ws2_32/tests: Move namespace provider tests to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:48:59 +02:00
Zebediah Figura 8b20809354 ws2_32/tests: Move address/string conversion tests to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:48:59 +02:00
Zebediah Figura 29fafd5569 ws2_32/tests: Move service lookup tests to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:48:59 +02:00
Zebediah Figura 1699d4b785 ws2_32/tests: Move host lookup tests to protocol.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:48:59 +02:00
Zebediah Figura edd9ef9c27 ws2_32/tests: Move address lookup tests to protocol.c.
sock.c is huge. This doesn't bother some people, but I find that it can be
harder to navigate and slower to compile. Splitting it is tricky, but I think
there's a pretty natural divide between functions that operate on sockets
(e.g. bind, listen, recv, getsockname) and functions that don't (e.g.
get*info, inet_*, get*by*, WSC*).

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:48:59 +02:00
Zebediah Figura 904c05d3d3 include: Do not include winsock.h in winsock2.h.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-27 18:55:24 +02:00
Francois Gouget 6ccd501503 ws2_32/tests: Load GetHostNameW() dynamically.
It is not available on Windows 7 and lower.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 22:11:27 +02:00
Alexandre Julliard 50c40b913a ws2_32: Install network database files.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=12076
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-15 17:30:50 +02:00
Hans Leidekker 998e5eaddb ws2_32: Implement GetHostNameW.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49286
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:32:15 +02:00
Alexandre Julliard 2330a5860a ntdll: Stop exporting wine_server_send_fd() and wine_server_release_fd().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 15:07:01 +02:00
Paul Gofman 904f7cfbae ws2_32: Copy send buffer data for async send in WS2_ConnectEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50738
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:48:21 +01:00
Jiangyi Chen 37b7d573b2 ws2_32: Add a missing break.
Signed-off-by: Jiangyi Chen <chenjiangyi@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 22:22:19 +01:00
Hans Leidekker dc02bbee54 ws2_32: Fix buffer size query in WSAAddressToStringW.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-20 22:12:28 +01:00
Hans Leidekker e7dc82377b ws2_32: Avoid returning duplicate entries from WS_getaddrinfo.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-20 22:12:24 +01:00
Jeff Latimer 89b82195cd ws2_32: Do not print an ERR message when returning WSAEWOULDBLOCK from WSAIoctl().
Signed-off-by: Jeff Latimer <lats@yless4u.com.au>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-20 11:10:44 +01:00
Paul Gofman e0238b6c76 ws2_32: Use if_nameindex() instead of SIOCGIFNAME.
Fixes Mac build broken by 03fcb54c0e

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50525
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 13:40:25 +01:00
Paul Gofman 03fcb54c0e ws2_32: Reimplement SIO_GET_INTERFACE_LIST on top of GetIpAddrTable().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Damjan Jovanovic 47d50bbbc2 ws2_32: Deal with getaddrinfo() returning NULL ai_canonname despite AI_CANONNAME.
This fixes a wineboot crash on FreeBSD, where getaddrinfo() returns a NULL
ai_canonname, causing wineboot to pass NULL to strchr().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50408
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-28 12:27:10 +01:00
Paul Gofman e695982db3 ws2_32/tests: Don't fail the test in test_wsaioctl() if only one interface is available.
Fixes test failure on Testbot.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-17 10:46:45 +01:00
Paul Gofman f17404f8ed ws2_32: Fix buffer size check in WSAIoctl() for SIO_GET_INTERFACE_LIST.
Fixes out of bound memory access in Anno 1404 Addon.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-16 11:03:10 +01:00
Francois Gouget 948e08152b ws2_32/tests: Skip some raw socket tests when missing elevated privileges.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-14 17:02:39 +01:00
Francois Gouget b344ccd857 ws2_32: Fix the spelling of a comment.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-25 22:51:35 +01:00
Paul Gofman 2793bdeb26 ws2_32: Force adding completion for error status in WS2_ConnectEx().
Fixes Paradox launcher hang on start (which happens after commit
0c2f556afe).

The referenced commit did not introduce the problem, it just made
getsockopt(..., WS_SO_PROTOCOL_INFOW, ) working and the application
is taking another path after getting XP1_IFS_HANDLES flag for protocol.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-13 21:57:16 +01:00
Zebediah Figura b9f8adb243 server: Forbid accepting into the same socket more than once.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:02 +02:00
Zebediah Figura 93fb921ca7 ws2_32: Use server-side async I/O in accept().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:02 +02:00
Zebediah Figura 0bbd3f6617 ws2_32: Use server-side async I/O in AcceptEx().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:01 +02:00
Zebediah Figura a0d386a310 ws2_32/tests: Fix an intermittent test failure on w10pro64.
Much like 2aebe0b628.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-19 11:36:18 +02:00
Zebediah Figura 0c249e6125 ws2_32/tests: Add more tests for passing short buffers to AcceptEx().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-16 22:05:40 +02:00
Zebediah Figura 2aebe0b628 ws2_32/tests: Fix a test failure on w10pro64.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-16 22:05:37 +02:00
Zebediah Figura ff8b5a51d7 ws2_32/tests: Remove workarounds from test_events().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-16 22:05:35 +02:00
Zebediah Figura 102c7903ea ws2_32/tests: Remove some workarounds for no longer supported versions of Windows.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-16 22:05:33 +02:00
Zebediah Figura d1461b622e ws2_32/tests: Rewrite the CF_DEFER test in test_AcceptEx().
The previous test in fact regularly failed on Windows, hidden by the
presence of broken(), since both sockets could be connected before the
listener was signaled.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-16 22:05:28 +02:00
Zebediah Figura ecc790ad47 ws2_32/tests: Avoid ok(0, ...) where the condition can be checked directly.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:56:28 +02:00
Zebediah Figura 94ea4252cf ws2_32/tests: Link directly to more functions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:56:25 +02:00
Zebediah Figura ee38e167d1 ws2_32/tests: Make the tests less verbose by default.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:56:21 +02:00
Zebediah Figura f65340704f ws2_32/tests: Avoid using skip() or trace() for tests that should not fail.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 11:56:16 +02:00
Zebediah Figura 2600ccf27f ws2_32: Use IOCTL_AFD_ACCEPT_INTO.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 10:01:51 +02:00
Zebediah Figura c46ab05e55 ws2_32: Use IOCTL_AFD_ACCEPT.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 10:01:04 +02:00
Zebediah Figura b1f2b61be0 server: Return Win32 socket types from get_socket_info.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:50:40 +02:00
Zebediah Figura ac36b8ff01 ws2_32: Set default socket options in the server.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:50:22 +02:00
Zebediah Figura abcc75cbcf ws2_32: Pass Win32 socket types to the server.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-01 11:49:27 +02:00
Zebediah Figura 0c2f556afe ws2_32: Reimplement ws_protocol_info() using the supported_protocols array.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:03:12 +02:00
Zebediah Figura 9498f9625a ws2_32: Add protocol information for TCP and UDP over IPv6.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:03:10 +02:00
Zebediah Figura 02a764e702 ws2_32: Look for supported socket parameters if any parameters to WSASocket() are zero.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:03:08 +02:00
Zebediah Figura f4d376ea07 ws2_32: Reimplement WSAEnumProtocols() using a flat array of WSA_PROTOCOLINFO structures.
Looking up protocol information by protocol number is not reliable, as protocol
numbers for different families may overlap.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:03:06 +02:00
Alexandre Julliard 9fff80d876 ws2_32: Retrieve the FQDN only when necessary in getaddrinfo().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 17:03:58 +02:00
Zebediah Figura 2a573c6f48 ws2_32: Always return WSAEINVAL if AF_UNSPEC is used with a zero protocol.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:15 +02:00
Zebediah Figura 088b7c5814 ws2_32/tests: Add more tests for WSASocket() parameters.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:12 +02:00
Zebediah Figura c6806e3f20 ws2_32: Translate SIO_ADDRESS_LIST_CHANGE into a proper NT ioctl.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:08 +02:00
Zebediah Figura 8fb897a571 ws2_32: Translate WSA_FLAG_OVERLAPPED to NT overlapped flags.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:05 +02:00
Zebediah Figura 18df4912f4 ws2_32: Reimplement WSASocketW() on top of NtOpenFile() and IOCTL_AFD_CREATE.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 14:04:45 +02:00
Haidong Yu 1e198e17de ws2_32: Add missing LeaveCriticalSection.
Signed-off-by: Haidong Yu <yuhaidong@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 21:42:13 +02:00
Alistair Leslie-Hughes 0f515c8ebe ws2_32: Map AI ALL_option in getaddrinfo().
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 19:42:40 +02:00
Zebediah Figura 470b9d0379 ws2_32: Close all open sockets in WSACleanup().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=18670
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 16:57:42 +02:00
Zebediah Figura 23dbfaadbb ws2_32: Keep a list of open sockets.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 16:57:42 +02:00
Aaro Altonen 652f1f9642 ws2_32: Improve WSCGetProviderPath() stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45801
Signed-off-by: Aaro Altonen <a.altonen@hotmail.com>
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:05:01 +02:00
Hans Leidekker a6d9f46b25 ws2_32: Avoid a crash in WS_getaddrinfo when the specified service doesn't exist.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49656
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-11 18:08:13 +02:00
Alistair Leslie-Hughes 587732acb7 ws2_32: Correct returned error code for an invalid socket.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-27 23:28:16 +02:00
Alex Henrie 046475d88e ws2_32/tests: Allow ESP and AH protocols to be missing on Windows.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-27 23:28:16 +02:00
Alex Henrie a16f91ae36 ws2_32: Avoid depending on system getprotoby(name|number) functions.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:16:52 +02:00
Alistair Leslie-Hughes da6386df8b ws2_32: Trace SIO_IDEAL_SEND_BACKLOG_* calls.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:35 +02:00
Paul Gofman d888f3ba36 ws2_32: Consider socket with zero ifindex unbound.
Real interface index can't be zero.
getsockopt(..., IP_UNICAST_IF, ...) may return success and zero
interface index if IP_UNICAST_IF was never set.

Avoids error output which doesn't inidcate a real error condition
for such case.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-03 19:44:15 +02:00
Louis Lenders 6d1fea9711 ws2_32: Add FreeAddrInfoEx.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48256
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-18 09:00:31 +02:00
Paul Gofman 60c8c78015 ws2_32: Optimize interface_bind_check() by caching adapter addresses.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48668
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-18 09:00:30 +02:00
Alex Henrie 73ef942c65 ws2_32/tests: Put WSAAddressToString tests in tables.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 16:18:46 +02:00
Alex Henrie a294f755ce ws2_32: Reimplement inet_ntop on top of ntdll functions.
And add a couple of tests for IPv6 addresses that Windows represents
using dot-decimal notation for the last 32 bits but GNU/Linux does not.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-26 10:30:30 +02:00
Alex Henrie c84e416d23 ws2_32: Don't set output length in WSAStringToAddress on error.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 20:11:45 +02:00
Alex Henrie 205e09bc30 ws2_32/tests: Fix typos in test_WSAStringToAddress.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 20:10:46 +02:00
Alex Henrie 41e9a8c5fb ws2_32: Reimplement inet_pton on top of ntdll functions.
And add a test to show that inet_pton does not accept hexadecimal IPv4
addresses, and another test to demonstrate that it has the same leading
double colon bug as RtlIpv6StringToAddress.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 11:20:48 +02:00
Alex Henrie f21b25ae8e ws2_32: Set WSAEINVAL in InetPtonW if the address string is unparsable.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 11:20:48 +02:00
Alex Henrie 3bb824f988 ws2_32: Reimplement WSAStringToAddress on top of ntdll functions.
And add tests to show that the address is always zeroed out even if
there is an error, and that WSAStringToAddress has the same bug with
leading double colons as RtlIpv6StringToAddress.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 21:50:44 +02:00
Alex Henrie 2756b68559 ws2_32/tests: Put WSAStringToAddress tests in tables.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 21:50:25 +02:00
Marcus Meissner 8bce44e4ea ws2_32: Add IPPROTO_IPIP mapping.
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 11:52:44 +02:00
Bernhard Übelacker 3795484e81 ws2_32: Add stub implementation for WSCGetProviderInfo.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48765
Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 12:32:17 +01:00
Vijay Kiran Kamuju 0df9cce29d ws2_32: Add stub for WSCSetApplicationCategory.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48392
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 23:24:06 +01:00
Damjan Jovanovic 37dec9f144 server: Revert b4a1d80ae3 for now.
It breaks too many things.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48357
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-06 22:19:19 +01:00
Damjan Jovanovic b4a1d80ae3 wineserver: Avoid spurious FD_WRITE on repeated calls to WSAEventSelect().
Repeated calls to WSAEventSelect() with FD_WRITE deliver
spurious FD_WRITE events, as the flag isn't held, resulting
in us unnecessarily polling the socket for writability,
despite the fact FD_WRITE should only be delivered (1) initially
on socket creation, and (2) after send[to]() fails with
EWOULDBLOCK and buffer space becomes available.

Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-20 10:33:54 +01:00
Damjan Jovanovic 6e7f357b65 ws2_32: Remove an unneeded todo_wine.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-19 16:20:39 +01:00
Francois Gouget c52c3d5a36 ws2_32/tests: Fix the spelling of a couple of ok() messages.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00
Fabian Maurer bf24c316f4 ws2_32: Handle more IGMP socket options.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47956
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 17:11:43 +02:00
Hans Leidekker c3bcf83d14 ws2_32: Call the completion routine in GetAddrInfoExW.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 14:51:33 +02:00
Damjan Jovanovic c722d819ea ws2_32: Avoid data corruption of WSAPROTOCOL_INFO in ws_protocol_info().
WS_EnterSingleProtocol[A/W]() fills WSAPROTOCOL_INFO with zeroes,
ovewriting what was already there, so in ws_protocol_info(),
populate the address family, socket type and protocol
only AFTER calling it.

Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 19:11:49 +02:00
Damjan Jovanovic 0645e6c959 ws2_32: Implement IP_PKTINFO on *BSDs, which only have IP_RECVDSTADDR instead.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 15:04:16 +02:00
Damjan Jovanovic aa2c84a9db ws2_32: WSARecvMsg allows a NULL control buffer when no control messages arrive.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43286
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 15:03:37 +02:00
Hans Leidekker 943d91c8b5 include: Use WS_ prefix with struct timeval.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-26 23:08:56 +02:00
Piotr Caban 17779b44d1 ws2_32: Don't use strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 20:27:43 +02:00
Rob Hughes b9591e21cf ws2_32: Handle EISCONN from sendmsg.
When calling sendmsg on a socket that's already connected, some
implementations will return EISCONN if you specify a recipient
(notably, Darwin/OSX with UDP connections). Newer versions of Linux
and Windows will simply ignore the destination parameter.

Signed-off-by: Rob Hughes <rbhughes@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-13 23:40:39 +01:00
Hans Leidekker 72c1cf59a3 ws2_32: Always set overlapped status in AcceptEx.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-22 18:22:15 +01:00
Sven Baars 651c446217 ws2_32: Use heap_realloc instead of HeapReAlloc to avoid an invalid realloc (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-06 19:57:27 +01:00
Alexandre Julliard 70073ff2d0 server: Return a WSA error code in accept_socket.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:04 +01:00
Alexandre Julliard 424a379f64 server: Return a WSA error code in create_socket.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:04 +01:00
Alexandre Julliard 4383a9d536 ws2_32: Return a WSA error code from _is_blocking().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:04 +01:00
Alexandre Julliard f670a162a0 server: Return WSA error codes in socket events.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:04 +01:00
Alistair Leslie-Hughes e7fd1ac3b2 ws2_32: Ignore a SO_SNDBUF value of 0 on macOS.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40264
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:40 +01:00
Sebastian Lackner 18e074b0f3 server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on client-side asyncs.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38960
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:32:03 +02:00
Michael Stefaniuc d58163b26d ws2_32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:15:32 +02:00
Alex Henrie 2be851c955 ws2_32/tests: Mark the IPX-not-supported error code test as todo.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-04 15:04:58 +02:00
André Hentschel 48a7d4d0a4 ws2_32/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 22:13:27 +02:00
Hans Leidekker 6d6b4bffb3 ws2_32: Enable IP_DONTFRAGMENT by default for SOCK_STREAM sockets.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 00:41:07 +02:00
Alexandre Julliard 5dd1bad730 ws2_32: Add fallback data for getprotobyname/number.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-10 10:02:19 +02:00
Akihiro Sagawa f6b6c94add ws2_32: Fix ioctlsocket(FIONREAD) with listening socket.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-27 12:47:17 +01:00
Akihiro Sagawa 13b66d3d1c ws2_32/tests: Add ioctlsocket(FIONREAD) tests with listening socket.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-27 12:47:17 +01:00
Michael Müller 6fa715c270 w2_32: Ignore setting several port assignment related socket options.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 11:40:33 +01:00
Zebediah Figura 80677440cf ws2_32: Only set error codes for triggered events in WSAEnumNetworkEvents().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-20 20:12:35 +01:00
André Hentschel 57b76f0d1a ws2_32/tests: Test with less socket pairs.
about 400 lines less in output

Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-03 12:01:52 +01:00
André Hentschel 67b690dba9 ws2_32/tests: Don't test WSAGetLastError() value on success.
This cuts the test output from around 1600 to around 1100 lines

Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-03 12:01:47 +01:00
Stefan Dösinger 5c421e5fcc ws2_32/tests: Fix the printed value in a few ok lines.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-22 10:17:37 +01:00
Alex Henrie 414260f356 ws2_32/tests: Initialize bytesReturned to 123456 before a failing test.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-04 11:39:21 +01:00
Alex Henrie 026751313a ws2_32/tests: Drop socket test workarounds for Windows <= 2000.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-04 11:39:20 +01:00
Dmitry Timoshkov 9b0c222f39 server: Deliver an async io APC to any thread alive in the process.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-13 21:14:53 +01:00
Marcus Meissner 0e18800f39 ws2_32/tests: Avoid crashes on flaky/non-present network.
Signed-off-by: Marcus Meissner <meissner@suse.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-13 11:53:56 +01:00
Dmitry Timoshkov b32e8c678b ws2_32/tests: Add some tests for sockets bound to a completion port.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-06 12:15:28 +01:00
Nikolay Sivov 4f8c3d4750 ws2_32/tests: Initialize address length argument before calling recvfrom()/WSARecvFrom() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-03 13:38:30 +02:00
Alexandre Julliard dc203dd833 ws2_32: Lock the user output buffer during receives.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-03 13:38:29 +02:00
Alexandre Julliard 1c72e594e3 ws2_32/tests: Add some tests for write watches.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-21 19:50:21 +02:00