Commit Graph

147169 Commits

Author SHA1 Message Date
Zebediah Figura 416072a84c ws2_32: Do not use SHUT_RD.
Win32 SD_RECEIVE has the following effects on a TCP or UDP socket:

* further calls to recv() et al. fail with ESHUTDOWN. However, Linux and Mac
  instead return 0.

* currently pending calls to recv() are not affected. However, Linux and Mac
  cause them to return 0.

* calls to WSAPoll() are unaffected. However, Linux and Mac instead signal
  both POLLHUP and POLLIN.

* for TCP connections, further data sent by the peer causes the connection to be
  reset. Mac and BSD will silently drop data, and Linux simply queues it
  forever.

In short, SHUT_RD does nothing that we want it to do on Linux or Mac (and
probably also BSD, though I am unable to test this).

Most of this impedance mismatch can be worked around in Wine, except for
WSAPoll(). Since poll() will always return POLLHUP, we can't safely ask for
POLLOUT, which we may need to do. Hence, since we aren't getting any benefit
from SHUT_RD, don't use it.

Note that this doesn't actually fix any tests, since we have some rather bizarre
logic to defer shutdown anyway (for an asynchronous socket, we don't call
shutdown(SHUT_RD) until the peer sends data; this is probably an unintended bug,
but "fixing" it ends up causing test failures, which is the main impetus for
this patch.)

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:51 +02:00
Piotr Caban 9cd51b02ee ucrtbase: Copy fenv tests from msvcr120.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:13 +02:00
Jacek Caban a5997bece7 winepulse: Move pulse_set_event_handle to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:10 +02:00
Jacek Caban 24a7c33fc1 winepulse: Move release_render_buffer to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:08 +02:00
Jacek Caban 8cb88173d8 winepulse: Move pulse_get_render_buffer to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:06 +02:00
Jacek Caban 505d4b8b14 winepulse: Move pulse_reset to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:02 +02:00
Jacek Caban 638455136b winepulse: Move pulse_start to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:31:57 +02:00
Shawn M. Chapla 2a667e28ba wine.inf: Don't use DDE for winebrowser by default.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Derek Lesho 0c74c809c7 winevulkan: Specify which structures to ignore in STRUCT_CHAIN_CONVERSIONS.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Dongwan Kim aa54278250 gdiplus: Implement GdipEnumerateMetafileSrcRectDestRectI.
Signed-off-by: Dongwan Kim <kdw6485@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban 8a2f7c731f msvcrt: Import remquof implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban c7fa467376 msvcrt: Import remquo implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban 29e99741d9 msvcrt: Import modff implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban 9984a5d661 msvcrt: Import modf implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban bc5f28888c msvcrt: Import fmodf implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Piotr Caban 2e8cfcf5b5 msvcrt: Import fmod implementation from musl.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Jacek Caban f013127647 msvcrt: Add sincos to importlib.
Fixes cross compilation with GCC 11, which may optimize a pair of sin(),
cos() calls to a single sincos() call, which is not exported by any
msvcrt version.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang 7fabcf6fed winex11.drv: Add a cache for querying XRandR 1.4 current modes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51047
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang 095bdc6c43 user32: Add a cache for EnumDisplayDevicesW().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang 9b2f59cb94 user32: Use get_primary_monitor_rect() helper.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang 59e5a8d055 user32: Optimize getting virtual screen rectangle with GetSystemMetrics().
This saves calls to GetMonitorInfo().

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang ab431c70b4 user32: Optimize getting primary monitor rectangle with GetSystemMetrics().
This saves calls to GetMonitorInfo() and return from EnumDisplayMonitors() immediately
after the primary monitor is found.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Zhiyi Zhang d7cd5587df user32: Optimize getting monitor count with GetSystemMetrics().
This saves calls to GetMonitorInfo().

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Aurimas Fišeras 573d451b80 po: Update Lithuanian translation.
Signed-off-by: Aurimas Fišeras <aurimas@members.fsf.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker 69fa6f2165 webservices: Add async support in WsOpenChannel.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker 81bedbf661 webservices: Add async support in WsCloseChannel.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker 6bc9748a6f webservices: Add async support in WsShutdownSessionChannel.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker 96d2c61aa6 webservices: Always queue an async in WsReceiveMessage and WsRequestReply.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker 180edff83a webservices: Implement WsAbortChannel.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Alexandre Julliard ea767728c6 kernelbase: Fix PEB address for Wow64.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51151
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Alexandre Julliard e8a1341f5c ntdll: Add platform-specific helpers for getting/setting the Wow64 context.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 17:53:30 +02:00
Alexandre Julliard ee0b909f87 ntdll: Export RtlWow64Get/SetThreadContext() on all 64-bit platforms.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 17:53:30 +02:00
Alexandre Julliard 8eda3fcc68 ntdll: Pass a server context to server_select().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 17:53:30 +02:00
Alexandre Julliard f04c2bd4f1 ntdll: Make the server context conversion functions generic.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 17:46:41 +02:00
Paul Gofman 85abea6070 wbemprox: Partially implement Win32_Process.Create method.
Fixes FunCom launcher failure to launch games.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:58:53 +02:00
Paul Gofman 09b0154ac1 wbemprox: Check for method existence in class_object_GetMethod().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:58:51 +02:00
Zebediah Figura f47a09b917 ntdll/tests: Fix a copy-paste error in an ok message.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:43 +02:00
Zebediah Figura 805a670ce5 advapi32: Quiet a couple of noisy FIXMEs.
The .NET installers call these many times.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:37 +02:00
Zebediah Figura 3c7bcb830f winegstreamer: Make the file_size field of struct parser into a local variable.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:33 +02:00
Zebediah Figura 2e26556643 winegstreamer: Shut down the read thread before releasing the IMFByteStream.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:31 +02:00
Zebediah Figura a891713f48 ws2_32: Use IOCTL_AFD_WINE_CONNECT in connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:29 +02:00
Zebediah Figura d3b6c772a5 ws2_32: Use IOCTL_AFD_WINE_CONNECT in ConnectEx().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:27 +02:00
Zebediah Figura 4256253419 server: Introduce IOCTL_AFD_WINE_CONNECT.
I was able to reverse-engineer a native CONNECT ioctl, with code 0x801; but I
was not able to find a valid set of parameters which would allow us to
implement either connect() or ConnectEx(). In particular, I could not find a
way to make the ioctl respect nonblocking mode, and I could not find a way to
specify an initial buffer to be sent.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:25 +02:00
Zebediah Figura 737fe1f993 server: Allow polling on an fd after it was removed.
In particular, so that we can wait for POLLOUT on a connecting socket multiple
times, in case the first connection fails, without polling on it while it is
unconnected.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:23 +02:00
Zebediah Figura 8fbf62ec47 ws2_32: Remove a leftover cast.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:20 +02:00
Zebediah Figura 520a84870f ws2_32: Cache the synchronous I/O event in the per-thread data.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 09:56:18 +02:00
Zebediah Figura 9172ca5baa quartz/tests: Fix some test failures related to thread timing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:36 +02:00
Zebediah Figura 44472fae6b quartz/tests: Avoid testing the result of GetQueueStatus().
It's very unreliable; our window can receive messages not related to the ones we're trying to test.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:33 +02:00
Jacek Caban 13cac6287c winepulse: Move timer loop to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:07 +02:00
Jacek Caban d7b957654d winepulse: Move pulse_write to unix lib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:05 +02:00