Paul Gofman : winhttp: Set socket close state in WinHttpWebSocketClose().

Alexandre Julliard julliard at winehq.org
Tue Jan 25 15:41:19 CST 2022


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

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Tue Jan 25 03:08:04 2022 +0300

winhttp: Set socket close state in WinHttpWebSocketClose().

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winhttp/request.c            |  2 +-
 dlls/winhttp/tests/notification.c | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index cb2db948278..f37c33b202c 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -3784,7 +3784,6 @@ static DWORD socket_close( struct socket *socket )
         if ((ret = socket_drain( socket ))) return ret;
     }
 
-    socket->state = SOCKET_STATE_CLOSED;
     return receive_close_status( socket, count );
 }
 
@@ -3834,6 +3833,7 @@ DWORD WINAPI WinHttpWebSocketClose( HINTERNET hsocket, USHORT status, void *reas
     if (socket->state < SOCKET_STATE_SHUTDOWN
         && (ret = send_socket_shutdown( socket, status, reason, len, FALSE ))) goto done;
 
+    socket->state = SOCKET_STATE_CLOSED;
     if (socket->request->connect->hdr.flags & WINHTTP_FLAG_ASYNC)
     {
         struct socket_shutdown *s;
diff --git a/dlls/winhttp/tests/notification.c b/dlls/winhttp/tests/notification.c
index 88c6918cd98..2707151e00f 100644
--- a/dlls/winhttp/tests/notification.c
+++ b/dlls/winhttp/tests/notification.c
@@ -955,18 +955,18 @@ static void test_websocket(BOOL secure)
     close_status = 0xdead;
     size = sizeof(buffer) + 1;
     err = pWinHttpWebSocketQueryCloseStatus( socket, &close_status, buffer, sizeof(buffer), &size );
-    ok( err == ERROR_INVALID_OPERATION, "got %u\n", err );
-    ok( close_status == 0xdead, "got %u\n", close_status );
-    ok( size == sizeof(buffer) + 1, "got %u\n", size );
+    todo_wine ok( err == ERROR_INVALID_OPERATION, "got %u\n", err );
+    todo_wine ok( close_status == 0xdead, "got %u\n", close_status );
+    todo_wine ok( size == sizeof(buffer) + 1, "got %u\n", size );
 
     WaitForSingleObject( info.wait, INFINITE );
 
     close_status = 0xdead;
     size = sizeof(buffer) + 1;
     err = pWinHttpWebSocketQueryCloseStatus( socket, &close_status, buffer, sizeof(buffer), &size );
-    todo_wine ok( err == ERROR_SUCCESS, "got %u\n", err );
-    todo_wine ok( close_status == 1000, "got %u\n", close_status );
-    todo_wine ok( size <= sizeof(buffer), "got %u\n", size );
+    ok( err == ERROR_SUCCESS, "got %u\n", err );
+    ok( close_status == 1000, "got %u\n", close_status );
+    ok( size <= sizeof(buffer), "got %u\n", size );
 
     setup_test( &info, winhttp_close_handle, __LINE__ );
 




More information about the wine-cvs mailing list