Commit Graph

735 Commits

Author SHA1 Message Date
Fabian Maurer 19c758dc56 winhttp/tests: Avoid "misleading indentation" warnings.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-31 18:38:54 +01:00
Paul Gofman d44e752fa2 winhttp: Don't allow queueing websocket receive if another is pending.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Paul Gofman 04fcadacca winhttp: Don't allow socket transfers after receiving close frame.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Paul Gofman 41ea7fb0e1 winhttp: Don't queue socket_close() in WinHttpWebSocketClose() if close frame is already 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>
2022-01-28 21:10:21 +01:00
Paul Gofman 1c9ea6cd94 winhttp: Factor out socket_close_complete() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Paul Gofman 673a01a442 winhttp: Don't mind socket state in WinHttpWebSocketQueryCloseStatus().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Paul Gofman 63ce184f9a winhttp/tests: Test shutting down websocket when receive is pending.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Paul Gofman be921fb386 winhttp: Pass server initiated websocket close request to application.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Paul Gofman bb36da429f winhttp: Allow synchronous nonblocking send in socket_send_pong().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Paul Gofman 71ee671b65 winhttp: Allow synchronous nonblocking send in send_socket_shutdown().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Paul Gofman 9861b6796f winhttp: Attemp sync websocket send even if data doesn't fit frame buffer.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Paul Gofman a0e5fcdc00 winhttp: Attemp sync websocket send even if data doesn't fit SSL buffer.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Paul Gofman 67252dec22 winhttp: Append mask to output frame even if buffer length is zero.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Paul Gofman 7ea8192bb4 winhttp: Remove an extra pending_sends increment in WinHttpWebSocketSend().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Paul Gofman 68cb8a2965 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>
2022-01-26 21:53:56 +01:00
Paul Gofman 1b42ebcfb7 winhttp: Send callback for pending receives right away when closing websocket.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Paul Gofman 2a812a5645 winhttp: Count queued websocket receive operations.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Paul Gofman 52b00214a2 winhttp: Move receive callback call to task_socket_receive().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Paul Gofman 0417d9d015 winhttp: Set socket close state in WinHttpWebSocketClose().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 57b26a83ba winhttp/tests: Test closing websocket when receive is pending.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman de9a7e6540 winhttp: Process server close frame in handle_control_frame().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman d5fb34ebdb winhttp: Factor out receive_close_status() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 07639a02d3 winhttp: Move close callback call to task_socket_close().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman f6ce4e23fa winhttp: Use send_socket_shutdown() in WinHttpWebSocketClose().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 45872934aa winhttp: Factor out send_socket_shutdown() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 5ea5db9021 winhttp: Set socket state to shutdown right away in WinHttpWebSocketShutdown().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 01c02f60d4 winhttp: Return ERROR_INVALID_OPERATION when websocket is in the wrong state.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Paul Gofman 9ef1e44914 winhttp: Allow synchronous nonblocking send in WinHttpWebSocketSend() when possible.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 21:44:51 +01:00
Paul Gofman ad5d011f58 winhttp: Count queued websocket send operations.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 21:44:51 +01:00
Paul Gofman 7dd66e8450 winhttp: Factor out socket_send_complete() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 21:44:51 +01:00
Paul Gofman c892634244 winhttp: Drain frames until close frame in socket_close().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 21:44:51 +01:00
Paul Gofman b5b066f62a winhttp: Consider short read from netconn_recv() in receive_bytes().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:35 +01:00
Paul Gofman 3a914ff488 winhttp: Allow receive on shutdown web socket.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:33 +01:00
Paul Gofman 70ada6d189 winhttp: Use a buffer for sending frame in send_frame().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:31 +01:00
Paul Gofman 25bd67465d winhttp: Use separate SSL read and write buffers.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:29 +01:00
Paul Gofman 76ac0f3406 winhttp/tests: Also test async websockets with secure connection.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:26 +01:00
Zebediah Figura f400f25c25 winhttp: Remove unused ole32 import.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-19 10:40:13 +01:00
Hans Leidekker 859f9daada winhttp: Use DNS only for proxy auto-detection.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52133
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:21 +01:00
Paul Gofman 93b07c091b winhttp: Handle TLS close notify in netconn_is_alive().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-01 20:45:07 +01:00
Paul Gofman 3a8ccb9242 winhttp: Process end of read data before sending callback in read_data().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:33:11 +02:00
Paul Gofman d349013dde winhttp: Don't send notifications when connection is closed on read finish.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:33:06 +02:00
Hans Leidekker ca5850d920 winhttp/tests: Add redirect tests.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:14:50 +02:00
Hans Leidekker badc64b42c winhttp: Don't remove content-type/length headers in handle_redirect().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50272
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:14:46 +02:00
Hans Leidekker ec46607ee0 winhttp: Fix return value for relative redirects.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:14:43 +02:00
Hans Leidekker 5da1d59241 winhttp: Call drain_content() before clear_response_headers().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:14:40 +02:00
Hans Leidekker 239964ce86 winhttp: Call read_data() at least once in drain_content().
This ensures that response headers are processed even if there's no data to read.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50244
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:14:36 +02:00
Hans Leidekker 9f6e39e8b9 winhttp: Use ws.ifelse.io for websocket tests.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51631
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:48:39 +02:00
Hans Leidekker f738af16fb winhttp: Read any data left in the request buffer for websocket connections.
Fixes the case where a websocket server sends an unsolicited frame with the upgrade response.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:48:34 +02:00
Hans Leidekker 54742a9001 winhttp: Pass a socket pointer to send_bytes() and receive_bytes().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:48:30 +02:00