diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index 25a35dfe6..97b64a291 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -855,9 +855,8 @@ typedef struct #define FreeRDP_BitmapCacheV2NumCells (2501) #define FreeRDP_BitmapCacheV2CellInfo (2502) #define FreeRDP_BitmapCachePersistFile (2503) -#define FreeRDP_ColorPointerFlag (2560) +#define FreeRDP_ColorPointerCacheSize (2560) #define FreeRDP_PointerCacheSize (2561) -#define FreeRDP_ColorPointerCacheSize (2562) #define FreeRDP_KeyboardRemappingList (2622) #define FreeRDP_KeyboardCodePage (2623) #define FreeRDP_KeyboardLayout (2624) @@ -1455,10 +1454,9 @@ struct rdp_settings UINT64 padding2560[2560 - 2504]; /* 2504 */ /* Pointer Capabilities */ - ALIGN64 BOOL ColorPointerFlag; /* 2560 */ - ALIGN64 UINT32 PointerCacheSize; /* 2561 */ - ALIGN64 UINT32 ColorPointerCacheSize; /* 2562 */ - UINT64 padding2624[2622 - 2563]; /* 2563 */ + ALIGN64 UINT32 ColorPointerCacheSize; /* 2560 */ + ALIGN64 UINT32 PointerCacheSize; /* 2561 */ + UINT64 padding2624[2622 - 2562]; /* 2562 */ /* Input Capabilities */ ALIGN64 char* KeyboardRemappingList; /* 2622 */ diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index 315232553..dce91fd61 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -100,9 +100,6 @@ BOOL freerdp_settings_get_bool(const rdpSettings* settings, size_t id) case FreeRDP_CertificateUseKnownHosts: return settings->CertificateUseKnownHosts; - case FreeRDP_ColorPointerFlag: - return settings->ColorPointerFlag; - case FreeRDP_CompressionEnabled: return settings->CompressionEnabled; @@ -669,10 +666,6 @@ BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL val) settings->CertificateUseKnownHosts = cnv.c; break; - case FreeRDP_ColorPointerFlag: - settings->ColorPointerFlag = cnv.c; - break; - case FreeRDP_CompressionEnabled: settings->CompressionEnabled = cnv.c; break; @@ -1827,7 +1820,7 @@ UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, size_t id) WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz " [%s|%s]", __FUNCTION__, id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id)); - return 0; + return FALSE; } } diff --git a/libfreerdp/common/settings_str.c b/libfreerdp/common/settings_str.c index 61fa8997a..9fe0e215d 100644 --- a/libfreerdp/common/settings_str.c +++ b/libfreerdp/common/settings_str.c @@ -56,7 +56,6 @@ static const struct settings_str_entry settings_map[] = { "FreeRDP_CertificateCallbackPreferPEM" }, { FreeRDP_CertificateUseKnownHosts, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_CertificateUseKnownHosts" }, - { FreeRDP_ColorPointerFlag, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ColorPointerFlag" }, { FreeRDP_CompressionEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_CompressionEnabled" }, { FreeRDP_ConsoleSession, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ConsoleSession" }, { FreeRDP_CredentialsFromStdin, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_CredentialsFromStdin" }, @@ -657,12 +656,8 @@ BOOL freerdp_settings_print_diff(wLog* log, DWORD level, const rdpSettings* sett size_t x; WINPR_ASSERT(log); - - if (!settings || !other) - { - WLog_Print(log, level, "settings=%p, other=%p", settings, other); - return settings != other; - } + WINPR_ASSERT(settings); + WINPR_ASSERT(other); for (x = 0; x < ARRAYSIZE(settings_map); x++) { @@ -791,12 +786,7 @@ void freerdp_settings_dump(wLog* log, DWORD level, const rdpSettings* settings) size_t x; WINPR_ASSERT(log); - - if (!settings) - { - WLog_Print(log, level, "settings=NULL"); - return; - } + WINPR_ASSERT(settings); for (x = 0; x < ARRAYSIZE(settings_map); x++) { diff --git a/libfreerdp/core/capabilities.c b/libfreerdp/core/capabilities.c index 26b9453bf..4c83d6e02 100644 --- a/libfreerdp/core/capabilities.c +++ b/libfreerdp/core/capabilities.c @@ -1075,12 +1075,6 @@ static BOOL rdp_apply_pointer_capability_set(rdpSettings* settings, const rdpSet WINPR_ASSERT(settings); WINPR_ASSERT(src); - if (!freerdp_settings_get_bool(src, FreeRDP_ColorPointerFlag)) - { - if (!freerdp_settings_set_bool(settings, FreeRDP_ColorPointerFlag, FALSE)) - return FALSE; - } - const UINT32 pointerCacheSize = freerdp_settings_get_uint32(src, FreeRDP_PointerCacheSize); const UINT32 colorPointerCacheSize = freerdp_settings_get_uint32(src, FreeRDP_ColorPointerCacheSize); @@ -1121,12 +1115,18 @@ static BOOL rdp_read_pointer_capability_set(wStream* s, rdpSettings* settings) Stream_Read_UINT16(s, colorPointerFlag); /* colorPointerFlag (2 bytes) */ Stream_Read_UINT16(s, colorPointerCacheSize); /* colorPointerCacheSize (2 bytes) */ + if (colorPointerFlag == 0) + { + WLog_WARN(TAG, "[MS-RDPBCGR] 2.2.7.1.5 Pointer Capability Set " + "(TS_POINTER_CAPABILITYSET)::colorPointerFlag received is %" PRIu16 + ". Vaue is ignored and always assumed to be TRUE"); + } + /* pointerCacheSize is optional */ if (Stream_GetRemainingLength(s) >= 2) Stream_Read_UINT16(s, pointerCacheSize); /* pointerCacheSize (2 bytes) */ WINPR_ASSERT(settings); - settings->ColorPointerFlag = colorPointerFlag; settings->PointerCacheSize = pointerCacheSize; settings->ColorPointerCacheSize = colorPointerCacheSize; @@ -1143,7 +1143,6 @@ static BOOL rdp_read_pointer_capability_set(wStream* s, rdpSettings* settings) static BOOL rdp_write_pointer_capability_set(wStream* s, const rdpSettings* settings) { size_t header; - UINT16 colorPointerFlag; if (!Stream_EnsureRemainingCapacity(s, 32)) return FALSE; @@ -1157,7 +1156,9 @@ static BOOL rdp_write_pointer_capability_set(wStream* s, const rdpSettings* sett return FALSE; WINPR_ASSERT(settings); - colorPointerFlag = (settings->ColorPointerFlag) ? 1 : 0; + const UINT32 colorPointerFlag = + 1; /* [MS-RDPBCGR] 2.2.7.1.5 Pointer Capability Set (TS_POINTER_CAPABILITYSET) + * colorPointerFlag is ignored and always assumed to be TRUE */ Stream_Write_UINT16(s, colorPointerFlag); /* colorPointerFlag (2 bytes) */ Stream_Write_UINT16( s, (UINT16)settings->ColorPointerCacheSize); /* colorPointerCacheSize (2 bytes) */ diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index 491ead1f9..42be836d9 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -216,8 +216,7 @@ static void settings_client_load_hkey_local_machine(rdpSettings* settings) if (status == ERROR_SUCCESS) { - settings_reg_query_bool(settings, FreeRDP_ColorPointerFlag, hKey, _T("LargePointer")); - settings_reg_query_dword(settings, FreeRDP_LargePointerFlag, hKey, _T("ColorPointer")); + settings_reg_query_dword(settings, FreeRDP_LargePointerFlag, hKey, _T("LargePointer")); settings_reg_query_dword(settings, FreeRDP_PointerCacheSize, hKey, _T("PointerCacheSize")); settings_reg_query_dword(settings, FreeRDP_ColorPointerCacheSize, hKey, _T("ColorPointerCacheSize")); diff --git a/libfreerdp/core/test/settings_property_lists.h b/libfreerdp/core/test/settings_property_lists.h index 44edf2199..419dabb86 100644 --- a/libfreerdp/core/test/settings_property_lists.h +++ b/libfreerdp/core/test/settings_property_lists.h @@ -24,7 +24,6 @@ static const size_t bool_list_indices[] = { FreeRDP_BitmapCompressionDisabled, FreeRDP_CertificateCallbackPreferPEM, FreeRDP_CertificateUseKnownHosts, - FreeRDP_ColorPointerFlag, FreeRDP_CompressionEnabled, FreeRDP_ConsoleSession, FreeRDP_CredentialsFromStdin,