Commit Graph

1164 Commits

Author SHA1 Message Date
Jinoh Kang 74059d12b8 ntdll: Don't call try_send before server call in sock_send.
Otherwise, try_send() call from sock_send() may race against try_send()
call from async_send_proc(), shuffling the packet order.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52401
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-25 18:30:28 +01:00
Jinoh Kang 29883e2db9 ws2_32/tests: Continue sending remaining data on short write in test_write_events.
Today, we assert that a short write clears the FD_WRITE event bit;
however, short writes can never happen on Windows in the first place.
We're testing for a property of a socket behaviour that does not exist
on Windows, but currently happens to be exhibited by Wine.

Ignore short writes, and continue sending until it fails with
EWOULDBLOCK.  This way, the test won't care whether or not a short write
clears FD_WRITE.  This allows us some flexibility in implementation of
send().

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-22 18:36:49 +01:00
Ziqing Hui 6bdf3a6ba7 ws2_32/tests: Test getaddrinfo() for IPv6 DNS querying.
The tests show that if we don't have a global IPv6 address, getaddrinfo()
will not return IPv6 results. Specifing AF_UNSPEC makes it return IPv4 results.

Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-22 10:24:42 +01:00
Paul Gofman 081ba0ee2f ws2_32: Manage shorter length for IPV6_V6ONLY.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman ed09d9a4c0 ws2_32: Manage shorter length for IPV6_UNICAST_HOPS.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman 91aa6b2828 ws2_32: Manage shorter length for IPV6_RECVTCLASS.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman adcff74cd2 ws2_32: Manage shorter length for IPV6_PKTINFO.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman 9890677b49 ws2_32: Manage shorter length for IPV6_MULTICAST_LOOP.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman 67ebbbf336 ws2_32: Manage shorter length for IPV6_MULTICAST_HOPS.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Paul Gofman afa4aef69b ws2_32: Manage shorter length for IPV6_HOPLIMIT.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman 320f48b08b ws2_32: Manage shorter length for IPV6_DONTFRAG.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman ab8b7ed549 ws2_32: Return WSAENOBUFS from setsockopt() for IPPROTO_IPV6 with negative optlen.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman 9ff978e572 ws2_32: Manage shorter length for IP_RECVTTL.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman f95fd91f1d ws2_32: Manage shorter length for IP_RECVTOS.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman d4595a9a26 ws2_32: Manage shorter length for IP_PKTINFO.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:18:58 +01:00
Paul Gofman 4259f93337 ws2_32: Manage shorter length for TCP_NODELAY.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 22:12:00 +01:00
Eric Pouech 027d7db815 ws2_32/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 09:31:27 +01:00
Eric Pouech 2c0b24b670 ws2_32/tests: Use correct integral type.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 09:31:08 +01:00
Paul Gofman 4ed93b5380 ws2_32: Manage shorter length for SO_SNDBUF.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman 9a198964f7 ws2_32: Manage shorter length for SO_REUSEADDR.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman d5f79cbfaa ws2_32: Manage shorter length for SO_RCVBUF.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman 173407286e ws2_32: Set last error on success for SO_OPENTYPE.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman e60f009dc7 ws2_32: Manage shorter length for SO_OOBINLINE.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman 8a851dd75c ws2_32: Manage shorter length for SO_LINGER.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman f7c48f23e3 ws2_32: Manage shorter length for SO_KEEPALIVE.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:17 +01:00
Paul Gofman 26c2670203 ws2_32: Manage shorter length for SO_DONTROUTE.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:37 +01:00
Paul Gofman a73cb3f137 ws2_32: Manage shorter length for SO_DONTLINGER.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman 666eb2c628 ws2_32: Manage shorter length for SO_BROADCAST.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman 8fef57b1ef ws2_32/tests: Add tests for zero option length in test_set_getsockopt().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman 0baf44e320 ws2_32: Return WSAEFAULT from setsockopt() for IP_TTL with zero optlen.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman 5f9da35af1 ws2_32: Return WSAEFAULT from setsockopt() for IP_MULTICAST_TTL with zero optlen.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman c593b2f48e ws2_32: Return WSAEFAULT from setsockopt() for IP_MULTICAST_LOOP with zero optlen.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Paul Gofman 47438903ae ws2_32/tests: Add tests for bigger option value in test_set_getsockopt().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:45:09 +01:00
Paul Gofman 84bb7cd88d ws2_32: Validate IP_TOS value.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:45:09 +01:00
Paul Gofman 4d60b85f3b ws2_32/tests: Add tests for setting and getting socket options with shorter length.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:43:37 +01:00
Paul Gofman 9744055cf4 ws2_32: Return WSAENOBUFS from setsockopt() for IPPROTO_IP with negative optlen.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:43:18 +01:00
Paul Gofman b2d1d09083 ws2_32: Treat optlen as unsigned in setsockopt() for SO_SNDTIMEO.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:43:13 +01:00
Paul Gofman 4fa4339748 ws2_32: Treat optlen as unsigned in setsockopt() for SO_RCVTIMEO.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:43:07 +01:00
Paul Gofman 20e2edba07 ws2_32: Pre-validate optlen in getsockopt().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 21:42:58 +01:00
Paul Gofman 18230d23c5 ws2_32: Base inet_addr() implementation on musl.
The imported algorithm is modified to match the tests.

Fixes a regression introduced by commit
671cf16f77.

Windows inet_addr() behaves basically the same as Unix
inet_addr() which is different from inet_pton().

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 21:10:40 +01:00
Francois Gouget 98f2922d2e ws2_32/tests: Remove the todo_wine on a test_recv() ok() call.
This test has been succeeding ever since the try_recv() call has
been removed before the server call in sock_recv().

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 22:16:03 +01:00
Zebediah Figura 9856049a5b ws2_32/tests: Use winetest_push_context() in test_inet_pton().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 10:57:17 +01:00
Zebediah Figura c8c9508267 ws2_32/tests: Use winetest_push_context() in test_WSAAddressToString().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 10:57:17 +01:00
Zebediah Figura eba2cd3d33 ws2_32/tests: Do not use a loop to test ASCII and Unicode in test_WSAAddressToString().
They share almost no code.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 10:57:17 +01:00
Zebediah Figura 8648ab248c ws2_32/tests: Use winetest_push_context() in test_WSAStringToAddress().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 10:57:17 +01:00
Jinoh Kang 160eb74fdf ntdll: Don't call try_recv before server call in sock_recv.
Otherwise, try_recv() call from sock_recv() may race against try_recv()
call from async_recv_proc(), shuffling the packet order.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52401
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-10 20:18:39 +01:00
Zebediah Figura d9f3ea3287 ws2_32/tests: Cancel a call that currently incorrectly returns STATUS_PENDING.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 20:08:40 +01:00
Paul Gofman 2a38dab2d2 ws2_32: Trace status on operation failure.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 20:08:37 +01:00
Zebediah Figura 4a56c41462 ws2_32: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-07 10:58:20 +01:00
Zebediah Figura 2895f0fd22 ws2_32: Avoid an unnecessary goto.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-07 10:58:18 +01:00