[PATCH 4/8] winhttp: Implement WinHttpWebSocketClose.

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Wed Jun 24 06:07:34 CDT 2020


Hi Hans,

On 24/6/20 6:33 pm, Hans Leidekker wrote:
> +    if ((ret = receive_bytes( netconn, (char *)&socket->status, sizeof(socket->status), &count ))) goto done;
> +    if (count != sizeof(socket->status))
> +    {
> +        ret = ERROR_WINHTTP_INVALID_SERVER_RESPONSE;
> +        goto done;
> +    }
> +    socket->status = RtlUshortByteSwap( socket->status );
> +    ret = receive_bytes( netconn, socket->reason, sizeof(socket->reason), &socket->reason_len );
> +


The status and reason message are optional for the close packet and is 
causing an error on my test application.  The packet length will show if 
it has a code.

https://tools.ietf.org/html/rfc6455#section-5.5.1
If there is a body, the first two bytes of
    the body MUST be a 2-byte unsigned integer (in network byte order)
    representing a status code with value /code/ defined in Section 7.4.
    Following the 2-byte integer, the body MAY contain UTF-8-encoded data
    with value /reason/ating a reason for closure, followed by
    UTF-8-encoded data"

Regards
Alistair.



More information about the wine-devel mailing list