webservices: Read the string table in all sized envelopes.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Hans Leidekker 2017-09-21 11:26:13 +02:00 committed by Alexandre Julliard
parent 9169053957
commit 049d8cfc7d
1 changed files with 4 additions and 11 deletions

View File

@ -1547,12 +1547,10 @@ static HRESULT send_preamble_ack( struct channel *channel )
return S_OK;
}
static HRESULT receive_message_session_setup( struct channel *channel )
static HRESULT receive_message_session( struct channel *channel )
{
HRESULT hr;
if ((hr = receive_preamble( channel )) != S_OK) return hr;
if ((hr = send_preamble_ack( channel )) != S_OK) return hr;
if ((hr = receive_sized_envelope( channel )) != S_OK) return hr;
if (channel->encoding == WS_ENCODING_XML_BINARY_SESSION_1)
{
@ -1566,13 +1564,6 @@ static HRESULT receive_message_session_setup( struct channel *channel )
return init_reader( channel );
}
static HRESULT receive_message_session( struct channel *channel )
{
HRESULT hr;
if ((hr = receive_sized_envelope( channel )) != S_OK) return hr;
return init_reader( channel );
}
static HRESULT receive_message_sock( struct channel *channel, SOCKET socket )
{
HRESULT hr;
@ -1596,7 +1587,9 @@ static HRESULT receive_message( struct channel *channel )
switch (channel->session_state)
{
case SESSION_STATE_UNINITIALIZED:
return receive_message_session_setup( channel );
if ((hr = receive_preamble( channel )) != S_OK) return hr;
if ((hr = send_preamble_ack( channel )) != S_OK) return hr;
/* fall through */
case SESSION_STATE_SETUP_COMPLETE:
return receive_message_session( channel );