Paul Gofman : winhttp: Support abort in task_socket_close().

Alexandre Julliard julliard at winehq.org
Wed Jun 8 15:56:05 CDT 2022


Module: wine
Branch: master
Commit: 1b766caa48e8675f97016a2ee749dc3d89010400
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1b766caa48e8675f97016a2ee749dc3d89010400

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Mon Jun  6 20:24:21 2022 -0500

winhttp: Support abort in task_socket_close().

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>

---

 dlls/winhttp/request.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 269af0826c0..2754dc29163 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -4145,13 +4145,18 @@ static void task_socket_close( void *ctx, BOOL abort )
     struct socket *socket = (struct socket *)s->task_hdr.obj;
     DWORD ret;
 
-    if (abort) return;
+    if (abort)
+    {
+        socket_close_complete( socket, ERROR_WINHTTP_OPERATION_CANCELLED );
+        return;
+    }
 
     TRACE("running %p\n", ctx);
 
     ret = socket_close( socket );
     receive_io_complete( socket );
-    socket_close_complete( socket, ret );
+    if (task_needs_completion( &s->task_hdr ))
+        socket_close_complete( socket, ret );
 }
 
 DWORD WINAPI WinHttpWebSocketClose( HINTERNET hsocket, USHORT status, void *reason, DWORD len )




More information about the wine-cvs mailing list