Commit 68cb8a29 authored by Paul Gofman's avatar Paul Gofman Committed by Alexandre Julliard

winhttp: Return error from WinHttpWebSocketQueryCloseStatus() if close frame was not received.

parent 1b42ebcf
......@@ -3909,6 +3909,12 @@ DWORD WINAPI WinHttpWebSocketQueryCloseStatus( HINTERNET hsocket, USHORT *status
return ERROR_INVALID_OPERATION;
}
if (!socket->close_frame_received || socket->close_frame_receive_err)
{
ret = socket->close_frame_received ? socket->close_frame_receive_err : ERROR_INVALID_OPERATION;
release_object( &socket->hdr );
return ret;
}
*status = socket->status;
*ret_len = socket->reason_len;
if (socket->reason_len > len) ret = ERROR_INSUFFICIENT_BUFFER;
......
......@@ -971,9 +971,9 @@ static void test_websocket(BOOL secure)
close_status = 0xdead;
size = sizeof(buffer) + 1;
err = pWinHttpWebSocketQueryCloseStatus( socket, &close_status, buffer, sizeof(buffer), &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 );
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 );
WaitForSingleObject( info.wait, INFINITE );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment