libfreerdp-core: reply to TSG ping PDUs
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 13 Dec 2012 15:49:52 +0000 (10:49 -0500)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 13 Dec 2012 15:49:52 +0000 (10:49 -0500)
libfreerdp/core/gateway/rpc_client.c
libfreerdp/core/gateway/rts.c

index 2ee631c..a0e5fdb 100644 (file)
@@ -241,6 +241,7 @@ int rpc_client_on_read_event(rdpRpc* rpc)
                {
                        printf("rpc_client_frag_read: invalid fragment size: %d (max: %d)\n",
                                        header->frag_length, rpc->max_recv_frag);
+                       winpr_HexDump(Stream_Buffer(rpc->client->RecvFrag), Stream_Position(rpc->client->RecvFrag));
                        return -1;
                }
 
index 1369f83..7b26b14 100644 (file)
@@ -994,6 +994,10 @@ int rts_recv_out_of_sequence_pdu(rdpRpc* rpc, BYTE* buffer, UINT32 length)
        {
                return rts_recv_flow_control_ack_with_destination_pdu(rpc, buffer, length);
        }
+       else if (SignatureId == RTS_PDU_PING)
+       {
+               rts_send_ping_pdu(rpc);
+       }
        else
        {
                printf("Unimplemented signature id: 0x%08X\n", SignatureId);