[PATCH] winhttp: Support WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET option
Hans Leidekker
hans at codeweavers.com
Fri Jun 12 02:15:28 CDT 2020
On Fri, 2020-06-12 at 16:32 +1000, Alistair Leslie-Hughes wrote:
> diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c
> index 24455d858a6..105e292b15d 100644
> --- a/dlls/winhttp/session.c
> +++ b/dlls/winhttp/session.c
> @@ -1042,6 +1042,38 @@ static BOOL request_set_option( struct object_header *hdr, DWORD option, void *b
> FIXME("WINHTTP_OPTION_CONNECT_RETRIES\n");
> return TRUE;
>
> + case WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET:
> + {
> + BYTE buf[16];
> + WCHAR str[64];
> + DWORD length = 64;
ARRAY_SIZE(str)
> + int i;
> +
> + add_request_headers(request, L"Connection: Upgrade", -1,
> + WINHTTP_ADDREQ_FLAG_ADD | WINHTTP_ADDREQ_FLAG_REPLACE);
> + add_request_headers(request, L"Upgrade: websocket", -1,
> + WINHTTP_ADDREQ_FLAG_ADD | WINHTTP_ADDREQ_FLAG_REPLACE);
> + add_request_headers(request, L"Sec-WebSocket-Version: 13", -1,
> + WINHTTP_ADDREQ_FLAG_ADD | WINHTTP_ADDREQ_FLAG_REPLACE);
Can you add a test to show that headers are set here? A simple
websocket echo test would be nice too. And please check
add_request_headers for failure.
> + for(i = 0; i < sizeof(buf); i++)
> + buf[i] = rand() % 256;
Should this be stored somewhere?
More information about the wine-devel
mailing list