winhttp: Return error from WinHttpWebSocketQueryCloseStatus() if close frame was not received.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com> Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1b42ebcfb7
commit
68cb8a2965
|
@ -3909,6 +3909,12 @@ DWORD WINAPI WinHttpWebSocketQueryCloseStatus( HINTERNET hsocket, USHORT *status
|
||||||
return ERROR_INVALID_OPERATION;
|
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;
|
*status = socket->status;
|
||||||
*ret_len = socket->reason_len;
|
*ret_len = socket->reason_len;
|
||||||
if (socket->reason_len > len) ret = ERROR_INSUFFICIENT_BUFFER;
|
if (socket->reason_len > len) ret = ERROR_INSUFFICIENT_BUFFER;
|
||||||
|
|
|
@ -971,9 +971,9 @@ static void test_websocket(BOOL secure)
|
||||||
close_status = 0xdead;
|
close_status = 0xdead;
|
||||||
size = sizeof(buffer) + 1;
|
size = sizeof(buffer) + 1;
|
||||||
err = pWinHttpWebSocketQueryCloseStatus( socket, &close_status, buffer, sizeof(buffer), &size );
|
err = pWinHttpWebSocketQueryCloseStatus( socket, &close_status, buffer, sizeof(buffer), &size );
|
||||||
todo_wine ok( err == ERROR_INVALID_OPERATION, "got %u\n", err );
|
ok( err == ERROR_INVALID_OPERATION, "got %u\n", err );
|
||||||
todo_wine ok( close_status == 0xdead, "got %u\n", close_status );
|
ok( close_status == 0xdead, "got %u\n", close_status );
|
||||||
todo_wine ok( size == sizeof(buffer) + 1, "got %u\n", size );
|
ok( size == sizeof(buffer) + 1, "got %u\n", size );
|
||||||
|
|
||||||
WaitForSingleObject( info.wait, INFINITE );
|
WaitForSingleObject( info.wait, INFINITE );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue