From b4a0b651f81fa2c7dab6842fa3a087d159ae228e Mon Sep 17 00:00:00 2001 From: Vic Lee Date: Wed, 13 Jul 2011 00:01:50 +0800 Subject: [PATCH] cliprdr: process format list response PDU. --- channels/cliprdr/cliprdr_main.c | 3 +++ cunit/test_cliprdr.c | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/channels/cliprdr/cliprdr_main.c b/channels/cliprdr/cliprdr_main.c index 13d342f..94fbe7f 100644 --- a/channels/cliprdr/cliprdr_main.c +++ b/channels/cliprdr/cliprdr_main.c @@ -123,6 +123,9 @@ static void cliprdr_process_receive(rdpSvcPlugin* plugin, STREAM* data_in) cliprdr_process_format_list(cliprdr, data_in, dataLen); break; + case CB_FORMAT_LIST_RESPONSE: + break; + default: DEBUG_WARN("unknown msgType %d", msgType); break; diff --git a/cunit/test_cliprdr.c b/cunit/test_cliprdr.c index cacf499..f7cc125 100644 --- a/cunit/test_cliprdr.c +++ b/cunit/test_cliprdr.c @@ -69,6 +69,11 @@ static const uint8 test_format_list_data[] = "\x6D\x00\x61\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }; +static const uint8 test_format_list_response_data[] = +{ + "\x03\x00\x01\x00\x00\x00\x00\x00" +}; + static int test_rdp_channel_data(rdpInst* inst, int chan_id, char* data, int data_size) { printf("chan_id %d data_size %d\n", chan_id, data_size); @@ -125,15 +130,19 @@ void test_cliprdr(void) format_list_event->formats = (uint32*)xmalloc(sizeof(uint32) * 2); format_list_event->formats[0] = CB_FORMAT_TEXT; format_list_event->formats[1] = CB_FORMAT_HTML; - - /* cliprdr sends format list PDU to server */ event_processed = 0; freerdp_chanman_send_event(chan_man, "cliprdr", event); + + /* cliprdr sends format list PDU to server */ while (!event_processed) { freerdp_chanman_check_fds(chan_man, &inst); } + /* server sends format list response PDU to cliprdr */ + freerdp_chanman_data(&inst, 0, (char*)test_format_list_response_data, sizeof(test_format_list_response_data) - 1, + CHANNEL_FLAG_FIRST | CHANNEL_FLAG_LAST, sizeof(test_format_list_response_data) - 1); + /* server sends format list PDU to cliprdr */ freerdp_chanman_data(&inst, 0, (char*)test_format_list_data, sizeof(test_format_list_data) - 1, CHANNEL_FLAG_FIRST | CHANNEL_FLAG_LAST, sizeof(test_format_list_data) - 1); -- 2.7.4