From 8f19269b34896f65054aacc473878f2bbee59b1b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 22 Feb 2015 00:32:18 +0100 Subject: [PATCH] Added patch for support of non-blocking SIO_ADDRESS_LIST_CHANGE requests. --- README.md | 3 ++- debian/changelog | 1 + patches/patchinstall.sh | 19 ++++++++++++++ ...ATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch | 26 +++++++++++++++++++ patches/server-Address_List_Change/definition | 1 + 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 patches/server-Address_List_Change/0001-server-Return-STATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch create mode 100644 patches/server-Address_List_Change/definition diff --git a/README.md b/README.md index d293f677..d5ba530e 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [15]:** +**Bugfixes and features included in the next upcoming release [16]:** * Add semi-stub for GetFileVersionInfoExA/W ([Wine Bug #38098](https://bugs.winehq.org/show_bug.cgi?id=38098)) * Add semi-stub for GetFileVersionInfoSizeExA/W ([Wine Bug #38090](https://bugs.winehq.org/show_bug.cgi?id=38090)) @@ -55,6 +55,7 @@ Included bug fixes and improvements * Implement ntoskrnl.KeInitializeMutex * Improve stubs for AEV_{Get,Set}MasterVolumeLevel * Improve stubs for AEV_{Get,Set}Mute +* Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests ([Wine Bug #38062](https://bugs.winehq.org/show_bug.cgi?id=38062)) **Bugs fixed in Wine Staging 1.7.36 [167]:** diff --git a/debian/changelog b/debian/changelog index b5c6911b..bfc4f298 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,7 @@ wine-staging (1.7.37) UNRELEASED; urgency=low * Added patch to ignore unsupported alpha channels in TIFF decoder. * Added patch to add stub for ntoskrnl.Mm{Map,Unmap}LockedPages. * Added patch to implement ntoskrnl.KeInitializeMutex. + * Added patch for support of non-blocking SIO_ADDRESS_LIST_CHANGE requests. * Removed patches for UTF7 support (accepted upstream). * Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream). * Removed patch for IApplicationAssociationRegistration::QueryCurrentDefault (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index ba8e075d..69af867f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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: diff --git a/patches/server-Address_List_Change/0001-server-Return-STATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch b/patches/server-Address_List_Change/0001-server-Return-STATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch new file mode 100644 index 00000000..e5de3642 --- /dev/null +++ b/patches/server-Address_List_Change/0001-server-Return-STATUS_CANT_WAIT-WSAEWOULDBLOCK-for-no.patch @@ -0,0 +1,26 @@ +From 899fa865b1e299e275e119e03843894e022290bf Mon Sep 17 00:00:00 2001 +From: "Erich E. Hoover" +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 + diff --git a/patches/server-Address_List_Change/definition b/patches/server-Address_List_Change/definition new file mode 100644 index 00000000..6174ee34 --- /dev/null +++ b/patches/server-Address_List_Change/definition @@ -0,0 +1 @@ +Fixes: [38062] Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests