diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index 59fe00f97..187c9ed7d 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -100,6 +100,7 @@ extern "C" #define CS_MONITOR 0xC005 #define CS_MCS_MSGCHANNEL 0xC006 #define CS_MONITOR_EX 0xC008 +#define CS_UNUSED1 0xC00C #define CS_MULTITRANSPORT 0xC00A /* Server to Client (SC) data blocks */ diff --git a/libfreerdp/core/gcc.c b/libfreerdp/core/gcc.c index ca2548d81..9d521376c 100644 --- a/libfreerdp/core/gcc.c +++ b/libfreerdp/core/gcc.c @@ -558,6 +558,11 @@ BOOL gcc_write_conference_create_response(wStream* s, wStream* userData) 0); /* array of server data blocks */ } +BOOL gcc_read_client_unused1_data(wStream* s) +{ + return Stream_SafeSeek(s, 2); +} + BOOL gcc_read_client_data_blocks(wStream* s, rdpMcs* mcs, UINT16 length) { WINPR_ASSERT(s); @@ -623,6 +628,12 @@ BOOL gcc_read_client_data_blocks(wStream* s, rdpMcs* mcs, UINT16 length) break; + case CS_UNUSED1: + if (!gcc_read_client_unused1_data(sub)) + return FALSE; + + break; + case 0xC009: case CS_MULTITRANSPORT: if (!gcc_read_client_multitransport_channel_data(sub, mcs)) @@ -736,6 +747,9 @@ char* gcc_block_type_string(UINT16 type, char* buffer, size_t size) case CS_MONITOR_EX: _snprintf(buffer, size, "CS_MONITOR_EX [0x%04" PRIx16 "]", type); break; + case CS_UNUSED1: + _snprintf(buffer, size, "CS_UNUSED1 [0x%04" PRIx16 "]", type); + break; case CS_MULTITRANSPORT: _snprintf(buffer, size, "CS_MONITOR_EX [0x%04" PRIx16 "]", type); break;