Added patch for support of non-blocking SIO_ADDRESS_LIST_CHANGE requests.

This commit is contained in:
Sebastian Lackner
2015-02-22 00:32:18 +01:00
parent 3bfb699f09
commit 8f19269b34
5 changed files with 49 additions and 1 deletions

View File

@@ -149,6 +149,7 @@ patch_enable_all ()
enable_riched20_IText_Interface="$1"
enable_secur32_Schannel_ContextAttr="$1"
enable_server_ACL_Compat="$1"
enable_server_Address_List_Change="$1"
enable_server_ClipCursor="$1"
enable_server_CreateProcess_ACLs="$1"
enable_server_Inherited_ACLs="$1"
@@ -477,6 +478,9 @@ patch_enable ()
server-ACL_Compat)
enable_server_ACL_Compat="$2"
;;
server-Address_List_Change)
enable_server_Address_List_Change="$2"
;;
server-ClipCursor)
enable_server_ClipCursor="$2"
;;
@@ -2680,6 +2684,21 @@ if test "$enable_server_ACL_Compat" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Address_List_Change
# |
# | This patchset fixes the following Wine bugs:
# | * [#38062] Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests
# |
# | Modified files:
# | * server/sock.c
# |
if test "$enable_server_Address_List_Change" -eq 1; then
patch_apply server-Address_List_Change/0001-server-Return-STATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch
(
echo '+ { "Erich E. Hoover", "server: Return STATUS_CANT_WAIT/WSAEWOULDBLOCK for non-overlapped SIO_ADDRESS_LIST_CHANGE requests on non-blocking sockets.", 1 },';
) >> "$patchlist"
fi
# Patchset server-ClipCursor
# |
# | This patchset fixes the following Wine bugs:

View File

@@ -0,0 +1,26 @@
From 899fa865b1e299e275e119e03843894e022290bf Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Fri, 20 Feb 2015 14:03:34 -0700
Subject: server: Return STATUS_CANT_WAIT/WSAEWOULDBLOCK for non-overlapped
SIO_ADDRESS_LIST_CHANGE requests on non-blocking sockets.
---
server/sock.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/server/sock.c b/server/sock.c
index f3bab85..05d2e9e 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -558,6 +558,8 @@ obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *a
close_handle( current->process, wait_handle );
return 0;
}
+ if ((sock->state & FD_WINE_NONBLOCKING) && !blocking)
+ set_error( STATUS_CANT_WAIT );
return wait_handle;
default:
set_error( STATUS_NOT_SUPPORTED );
--
2.3.0

View File

@@ -0,0 +1 @@
Fixes: [38062] Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests