Module: wine
Branch: master
Commit: 4c1a288f6347522600c9f3561be62c002c631b30
URL: https://source.winehq.org/git/wine.git/?a=commit;h=4c1a288f6347522600c9f356…
Author: Paul Gofman <pgofman(a)codeweavers.com>
Date: Mon Feb 7 19:14:45 2022 +0300
server: Always update cached socket name after connect.
Fixes a regression introduced by
5c009c17b3a212c3f5b0034c465077c0c593daae.
For IPV6 socket already bound with bind() with IPV6_V6ONLY set to 0
the address returned by getsockname() may change after it is connected
to a IPV4 peer (e. g., from :: to ::ffff:192.0.2.128).
The effect of blamed commit is that before that Unix getsockname()
was called for each ws2_32 getsockname() and after the commit the
socket name is cached at bind and connect.
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
server/sock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/sock.c b/server/sock.c
index 40fb0cac535..512b7c0f78e 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -2340,7 +2340,7 @@ static void sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async )
allow_fd_caching( sock->fd );
unix_len = sizeof(unix_addr);
- if (!sock->bound && !getsockname( unix_fd, &unix_addr.addr, &unix_len ))
+ if (!getsockname( unix_fd, &unix_addr.addr, &unix_len ))
sock->addr_len = sockaddr_from_unix( &unix_addr, &sock->addr.addr, sizeof(sock->addr) );
sock->bound = 1;
Module: wine
Branch: master
Commit: 9da1a5059dfcd8722bd0783a898042bb4735412e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9da1a5059dfcd8722bd0783a…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Sun Feb 6 20:07:48 2022 +0300
ddraw/tests: Mark random WARP behavior broken in test_ck_default.
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/ddraw/tests/ddraw1.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 11168d4a74d..304671558af 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -2067,7 +2067,11 @@ static void test_ck_default(void)
hr = IDirect3DDevice_EndScene(device);
ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr);
color = get_surface_color(rt, 320, 240);
- ok(compare_color(color, 0x0000ff00, 1), "Got unexpected color 0x%08x.\n", color);
+ /* Color keying is supposed to be on by default in ddraw1, but used only if a ckey is set.
+ * WARP begs to differ. The default of D3DRENDERSTATE_COLORKEYENABLE is random, and it
+ * doesn't mind the absence of a color key (the latter part affects other tests, not this one). */
+ ok(compare_color(color, 0x0000ff00, 1) || broken(ddraw_is_warp(ddraw) && compare_color(color, 0x000000ff, 1)),
+ "Got unexpected color 0x%08x.\n", color);
hr = IDirect3DViewport_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET);
ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr);