diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index fcc749f1b..ff63e4c8b 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -880,6 +880,7 @@ typedef struct _RDPDR_PARALLEL RDPDR_PARALLEL; #define FreeRDP_SupportSSHAgentChannel (5187) #define FreeRDP_SupportVideoOptimized (5188) #define FreeRDP_RDP2TCPArgs (5189) +#define FreeRDP_TcpKeepAlive (5190) /** * FreeRDP Settings Data Structure @@ -1520,7 +1521,8 @@ struct rdp_settings ALIGN64 BOOL SupportSSHAgentChannel; /* 5187 */ ALIGN64 BOOL SupportVideoOptimized; /* 5188 */ ALIGN64 char* RDP2TCPArgs; /* 5189 */ - UINT64 padding5312[5312 - 5190]; /* 5190 */ + ALIGN64 BOOL TcpKeepAlive; /* 5190 */ + UINT64 padding5312[5312 - 5191]; /* 5191 */ /** * WARNING: End of ABI stable zone! @@ -1603,52 +1605,55 @@ extern "C" * the functions freerdp_get_param_* and freerdp_set_param_* are deprecated. * use freerdp_settings_get_* and freerdp_settings_set_* as a replacement! */ - FREERDP_API WINPR_DEPRECATED(BOOL freerdp_get_param_bool(rdpSettings* settings, int id)); + FREERDP_API WINPR_DEPRECATED(BOOL freerdp_get_param_bool(const rdpSettings* settings, int id)); FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_bool(rdpSettings* settings, int id, BOOL param)); - FREERDP_API WINPR_DEPRECATED(int freerdp_get_param_int(rdpSettings* settings, int id)); + FREERDP_API WINPR_DEPRECATED(int freerdp_get_param_int(const rdpSettings* settings, int id)); FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_int(rdpSettings* settings, int id, int param)); - FREERDP_API WINPR_DEPRECATED(UINT32 freerdp_get_param_uint32(rdpSettings* settings, int id)); + FREERDP_API WINPR_DEPRECATED(UINT32 freerdp_get_param_uint32(const rdpSettings* settings, + int id)); FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_uint32(rdpSettings* settings, int id, UINT32 param)); - FREERDP_API WINPR_DEPRECATED(UINT64 freerdp_get_param_uint64(rdpSettings* settings, int id)); + FREERDP_API WINPR_DEPRECATED(UINT64 freerdp_get_param_uint64(const rdpSettings* settings, + int id)); FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_uint64(rdpSettings* settings, int id, UINT64 param)); - FREERDP_API WINPR_DEPRECATED(char* freerdp_get_param_string(rdpSettings* settings, int id)); + FREERDP_API WINPR_DEPRECATED(char* freerdp_get_param_string(const rdpSettings* settings, + int id)); FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_string(rdpSettings* settings, int id, const char* param)); - FREERDP_API BOOL freerdp_settings_get_bool(rdpSettings* settings, size_t id); + FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL param); - FREERDP_API INT16 freerdp_settings_get_int16(rdpSettings* settings, size_t id); + FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_int16(rdpSettings* settings, size_t id, INT16 param); - FREERDP_API UINT16 freerdp_settings_get_uint16(rdpSettings* settings, size_t id); + FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_uint16(rdpSettings* settings, size_t id, UINT16 param); - FREERDP_API INT32 freerdp_settings_get_int32(rdpSettings* settings, size_t id); + FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings* settings, size_t id, INT32 param); - FREERDP_API UINT32 freerdp_settings_get_uint32(rdpSettings* settings, size_t id); + FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings* settings, size_t id, UINT32 param); - FREERDP_API INT64 freerdp_settings_get_int64(rdpSettings* settings, size_t id); + FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_int64(rdpSettings* settings, size_t id, INT64 param); - FREERDP_API UINT64 freerdp_settings_get_uint64(rdpSettings* settings, size_t id); + FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_uint64(rdpSettings* settings, size_t id, UINT64 param); - FREERDP_API const char* freerdp_settings_get_string(rdpSettings* settings, size_t id); + FREERDP_API const char* freerdp_settings_get_string(const rdpSettings* settings, size_t id); FREERDP_API BOOL freerdp_settings_set_string(rdpSettings* settings, size_t id, const char* param); - FREERDP_API const void* freerdp_settings_get_pointer(rdpSettings* settings, size_t id); + FREERDP_API const void* freerdp_settings_get_pointer(const rdpSettings* settings, size_t id); #ifdef __cplusplus } diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 32fb4d261..6ca65f28e 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -755,7 +755,7 @@ void freerdp_update_gateway_usage_method(rdpSettings* settings, UINT32 GatewayEn freerdp_set_gateway_usage_method(settings, GatewayUsageMethod); } -BOOL freerdp_get_param_bool(rdpSettings* settings, int id) +BOOL freerdp_get_param_bool(const rdpSettings* settings, int id) { return freerdp_settings_get_bool(settings, (size_t)id); } @@ -765,7 +765,7 @@ int freerdp_set_param_bool(rdpSettings* settings, int id, BOOL param) return freerdp_settings_set_bool(settings, (size_t)id, param) ? 0 : -1; } -int freerdp_get_param_int(rdpSettings* settings, int id) +int freerdp_get_param_int(const rdpSettings* settings, int id) { return freerdp_settings_get_int32(settings, (size_t)id); } @@ -775,7 +775,7 @@ int freerdp_set_param_int(rdpSettings* settings, int id, int param) return freerdp_settings_set_int32(settings, (size_t)id, param) ? 0 : -1; } -UINT32 freerdp_get_param_uint32(rdpSettings* settings, int id) +UINT32 freerdp_get_param_uint32(const rdpSettings* settings, int id) { return freerdp_settings_get_uint32(settings, (size_t)id); } @@ -785,7 +785,7 @@ int freerdp_set_param_uint32(rdpSettings* settings, int id, UINT32 param) return freerdp_settings_set_uint32(settings, (size_t)id, param) ? 0 : -1; } -UINT64 freerdp_get_param_uint64(rdpSettings* settings, int id) +UINT64 freerdp_get_param_uint64(const rdpSettings* settings, int id) { return freerdp_settings_get_uint64(settings, (size_t)id); } @@ -795,7 +795,7 @@ int freerdp_set_param_uint64(rdpSettings* settings, int id, UINT64 param) return freerdp_settings_set_uint64(settings, (size_t)id, param) ? 0 : -1; } -char* freerdp_get_param_string(rdpSettings* settings, int id) +char* freerdp_get_param_string(const rdpSettings* settings, int id) { return (char*)freerdp_settings_get_string(settings, (size_t)id); } diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index d1e0d7444..6caedf398 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -5,7 +5,7 @@ #define TAG FREERDP_TAG("common.settings") -BOOL freerdp_settings_get_bool(rdpSettings* settings, size_t id) +BOOL freerdp_settings_get_bool(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -495,6 +495,9 @@ BOOL freerdp_settings_get_bool(rdpSettings* settings, size_t id) case FreeRDP_SupportVideoOptimized: return settings->SupportVideoOptimized; + case FreeRDP_TcpKeepAlive: + return settings->TcpKeepAlive; + default: WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id); return FALSE; @@ -1152,6 +1155,10 @@ BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL val) settings->SupportVideoOptimized = val; break; + case FreeRDP_TcpKeepAlive: + settings->TcpKeepAlive = val; + break; + default: WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id); return FALSE; @@ -1159,7 +1166,7 @@ BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL val) return TRUE; } -UINT16 freerdp_settings_get_uint16(rdpSettings* settings, size_t id) +UINT16 freerdp_settings_get_uint16(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -1200,7 +1207,7 @@ BOOL freerdp_settings_set_uint16(rdpSettings* settings, size_t id, UINT16 val) return TRUE; } -INT16 freerdp_settings_get_int16(rdpSettings* settings, size_t id) +INT16 freerdp_settings_get_int16(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -1227,7 +1234,7 @@ BOOL freerdp_settings_set_int16(rdpSettings* settings, size_t id, INT16 val) return TRUE; } -UINT32 freerdp_settings_get_uint32(rdpSettings* settings, size_t id) +UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -1996,7 +2003,7 @@ BOOL freerdp_settings_set_uint32(rdpSettings* settings, size_t id, UINT32 val) return TRUE; } -INT32 freerdp_settings_get_int32(rdpSettings* settings, size_t id) +INT32 freerdp_settings_get_int32(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -2037,7 +2044,7 @@ BOOL freerdp_settings_set_int32(rdpSettings* settings, size_t id, INT32 val) return TRUE; } -UINT64 freerdp_settings_get_uint64(rdpSettings* settings, size_t id) +UINT64 freerdp_settings_get_uint64(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -2071,7 +2078,7 @@ BOOL freerdp_settings_set_uint64(rdpSettings* settings, size_t id, UINT64 val) return TRUE; } -INT64 freerdp_settings_get_int64(rdpSettings* settings, size_t id) +INT64 freerdp_settings_get_int64(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -2098,7 +2105,7 @@ BOOL freerdp_settings_set_int64(rdpSettings* settings, size_t id, INT64 val) return TRUE; } -const char* freerdp_settings_get_string(rdpSettings* settings, size_t id) +const char* freerdp_settings_get_string(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -2645,7 +2652,7 @@ BOOL freerdp_settings_set_string(rdpSettings* settings, size_t id, const char* v return TRUE; } -const void* freerdp_settings_get_pointer(rdpSettings* settings, size_t id) +const void* freerdp_settings_get_pointer(const rdpSettings* settings, size_t id) { if (!settings) return FALSE; @@ -2655,54 +2662,6 @@ const void* freerdp_settings_get_pointer(rdpSettings* settings, size_t id) case FreeRDP_instance: return settings->instance; - case FreeRDP_RdpServerCertificate: - return settings->RdpServerCertificate; - - case FreeRDP_ServerAutoReconnectCookie: - return settings->ServerAutoReconnectCookie; - - case FreeRDP_BitmapCacheV2CellInfo: - return settings->BitmapCacheV2CellInfo; - - case FreeRDP_RdpServerRsaKey: - return settings->RdpServerRsaKey; - - case FreeRDP_MonitorIds: - return settings->MonitorIds; - - case FreeRDP_TargetNetPorts: - return settings->TargetNetPorts; - - case FreeRDP_MonitorDefArray: - return settings->MonitorDefArray; - - case FreeRDP_ChannelDefArray: - return settings->ChannelDefArray; - - case FreeRDP_ClientAutoReconnectCookie: - return settings->ClientAutoReconnectCookie; - - case FreeRDP_TargetNetAddresses: - return settings->TargetNetAddresses; - - case FreeRDP_StaticChannelArray: - return settings->StaticChannelArray; - - case FreeRDP_DynamicChannelArray: - return settings->DynamicChannelArray; - - case FreeRDP_DeviceArray: - return settings->DeviceArray; - - case FreeRDP_GlyphCache: - return settings->GlyphCache; - - case FreeRDP_FragCache: - return settings->FragCache; - - case FreeRDP_ClientTimeZone: - return settings->ClientTimeZone; - case FreeRDP_ServerRandom: return settings->ServerRandom; @@ -2730,6 +2689,54 @@ const void* freerdp_settings_get_pointer(rdpSettings* settings, size_t id) case FreeRDP_OrderSupport: return settings->OrderSupport; + case FreeRDP_ChannelDefArray: + return settings->ChannelDefArray; + + case FreeRDP_MonitorDefArray: + return settings->MonitorDefArray; + + case FreeRDP_MonitorIds: + return settings->MonitorIds; + + case FreeRDP_TargetNetPorts: + return settings->TargetNetPorts; + + case FreeRDP_ClientAutoReconnectCookie: + return settings->ClientAutoReconnectCookie; + + case FreeRDP_ServerAutoReconnectCookie: + return settings->ServerAutoReconnectCookie; + + case FreeRDP_ClientTimeZone: + return settings->ClientTimeZone; + + case FreeRDP_TargetNetAddresses: + return settings->TargetNetAddresses; + + case FreeRDP_RdpServerRsaKey: + return settings->RdpServerRsaKey; + + case FreeRDP_RdpServerCertificate: + return settings->RdpServerCertificate; + + case FreeRDP_BitmapCacheV2CellInfo: + return settings->BitmapCacheV2CellInfo; + + case FreeRDP_GlyphCache: + return settings->GlyphCache; + + case FreeRDP_FragCache: + return settings->FragCache; + + case FreeRDP_DeviceArray: + return settings->DeviceArray; + + case FreeRDP_StaticChannelArray: + return settings->StaticChannelArray; + + case FreeRDP_DynamicChannelArray: + return settings->DynamicChannelArray; + default: WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id); return FALSE; diff --git a/libfreerdp/core/test/settings_property_lists.h b/libfreerdp/core/test/settings_property_lists.h index f76292794..7ffebdc61 100644 --- a/libfreerdp/core/test/settings_property_lists.h +++ b/libfreerdp/core/test/settings_property_lists.h @@ -164,6 +164,7 @@ static const size_t bool_list_indices[] = { FreeRDP_SupportGeometryTracking, FreeRDP_SupportSSHAgentChannel, FreeRDP_SupportVideoOptimized, + FreeRDP_TcpKeepAlive, }; #define have_uint16_list_indices @@ -364,18 +365,7 @@ static const size_t string_list_indices[] = { #define have_pointer_list_indices static const size_t pointer_list_indices[] = { - FreeRDP_StaticChannelArray, - FreeRDP_DynamicChannelArray, FreeRDP_instance, - FreeRDP_RdpServerCertificate, - FreeRDP_MonitorIds, - FreeRDP_TargetNetPorts, - FreeRDP_DeviceArray, - FreeRDP_ClientAutoReconnectCookie, - FreeRDP_TargetNetAddresses, - FreeRDP_MonitorDefArray, - FreeRDP_BitmapCacheV2CellInfo, - FreeRDP_ServerAutoReconnectCookie, FreeRDP_ServerRandom, FreeRDP_ServerCertificate, FreeRDP_ClientRandom, @@ -385,11 +375,22 @@ static const size_t pointer_list_indices[] = { FreeRDP_Password51, FreeRDP_ReceivedCapabilities, FreeRDP_OrderSupport, + FreeRDP_ChannelDefArray, + FreeRDP_MonitorDefArray, + FreeRDP_MonitorIds, + FreeRDP_TargetNetPorts, + FreeRDP_ClientAutoReconnectCookie, + FreeRDP_ServerAutoReconnectCookie, + FreeRDP_ClientTimeZone, + FreeRDP_TargetNetAddresses, FreeRDP_RdpServerRsaKey, + FreeRDP_RdpServerCertificate, + FreeRDP_BitmapCacheV2CellInfo, FreeRDP_GlyphCache, FreeRDP_FragCache, - FreeRDP_ClientTimeZone, - FreeRDP_ChannelDefArray, + FreeRDP_DeviceArray, + FreeRDP_StaticChannelArray, + FreeRDP_DynamicChannelArray, }; #endif /* TEST_SETTINGS_PROPERTY_LISTS */ diff --git a/scripts/update-settings-tests b/scripts/update-settings-tests index 98ac66032..79368dc23 100755 --- a/scripts/update-settings-tests +++ b/scripts/update-settings-tests @@ -5,11 +5,11 @@ import sys def get_values(entry_dict, entry_type): values = [] if '*' == entry_type: - for key in entry_dict.keys(): + for key in list(entry_dict.keys()): if entry_type in key: values += entry_dict[key] entry_dict.pop(key, None) - elif entry_type in entry_dict: + elif entry_type in dict(entry_dict): values = entry_dict[entry_type] entry_dict.pop(entry_type, None) return values @@ -43,7 +43,7 @@ def write_getter(f, entry_dict, entry_type, entry_name): f.write('const ' + entry_type) else: f.write(entry_type) - f.write(' freerdp_settings_get_' + entry_name.lower() + '(rdpSettings* settings, size_t id)\n') + f.write(' freerdp_settings_get_' + entry_name.lower() + '(const rdpSettings* settings, size_t id)\n') f.write('{\n') f.write('\tif (!settings)\n') f.write('\t\treturn FALSE;\n\n') @@ -103,7 +103,7 @@ print('begin parsing settings header') try: type_list = dict() - with open(name + "/../include/freerdp/settings.h", "rb") as f: + with open(name + "/../include/freerdp/settings.h", "r") as f: lines = f.readlines() started = False for line in lines: