From c0d12b1b9e5c240d1ab2bb0c0be601eb254ec430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Thu, 13 Dec 2012 11:01:13 -0500 Subject: [PATCH] libfreerdp-core: implement RTS flow control ack PDU --- libfreerdp/core/gateway/rts.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libfreerdp/core/gateway/rts.c b/libfreerdp/core/gateway/rts.c index 7b26b14ae..dbde640dc 100644 --- a/libfreerdp/core/gateway/rts.c +++ b/libfreerdp/core/gateway/rts.c @@ -832,6 +832,22 @@ int rts_send_flow_control_ack_pdu(rdpRpc* rpc) int rts_recv_flow_control_ack_pdu(rdpRpc* rpc, BYTE* buffer, UINT32 length) { + UINT32 offset; + UINT32 BytesReceived; + UINT32 AvailableWindow; + BYTE ChannelCookie[16]; + + offset = 24; + offset += rts_flow_control_ack_command_read(rpc, &buffer[offset], length - offset, + &BytesReceived, &AvailableWindow, (BYTE*) &ChannelCookie) + 4; + + printf("BytesReceived: %d AvailableWindow: %d\n", + BytesReceived, AvailableWindow); + printf("ChannelCookie: " RPC_UUID_FORMAT_STRING "\n", RPC_UUID_FORMAT_ARGUMENTS(ChannelCookie)); + + rpc->VirtualConnection->DefaultInChannel->SenderAvailableWindow = + AvailableWindow - (rpc->VirtualConnection->DefaultInChannel->BytesSent - BytesReceived); + return 0; }