diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index fcc749f1b..3cad588a4 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -880,6 +880,11 @@ typedef struct _RDPDR_PARALLEL RDPDR_PARALLEL; #define FreeRDP_SupportSSHAgentChannel (5187) #define FreeRDP_SupportVideoOptimized (5188) #define FreeRDP_RDP2TCPArgs (5189) +#define FreeRDP_TcpKeepAlive (5190) +#define FreeRDP_TcpKeepAliveRetries (5191) +#define FreeRDP_TcpKeepAliveDelay (5192) +#define FreeRDP_TcpKeepAliveInterval (5193) +#define FreeRDP_TcpAckTimeout (5194) /** * FreeRDP Settings Data Structure @@ -1520,7 +1525,12 @@ struct rdp_settings ALIGN64 BOOL SupportSSHAgentChannel; /* 5187 */ ALIGN64 BOOL SupportVideoOptimized; /* 5188 */ ALIGN64 char* RDP2TCPArgs; /* 5189 */ - UINT64 padding5312[5312 - 5190]; /* 5190 */ + ALIGN64 BOOL TcpKeepAlive; /* 5190 */ + ALIGN64 UINT32 TcpKeepAliveRetries; /* 5191 */ + ALIGN64 UINT32 TcpKeepAliveDelay; /* 5192 */ + ALIGN64 UINT32 TcpKeepAliveInterval; /* 5193 */ + ALIGN64 UINT32 TcpAckTimeout; /* 5194 */ + UINT64 padding5312[5312 - 5195]; /* 5195 */ /** * WARNING: End of ABI stable zone! @@ -1603,52 +1613,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..86bacd00b 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; @@ -1552,6 +1559,18 @@ UINT32 freerdp_settings_get_uint32(rdpSettings* settings, size_t id) case FreeRDP_DynamicChannelArraySize: return settings->DynamicChannelArraySize; + case FreeRDP_TcpKeepAliveRetries: + return settings->TcpKeepAliveRetries; + + case FreeRDP_TcpKeepAliveDelay: + return settings->TcpKeepAliveDelay; + + case FreeRDP_TcpKeepAliveInterval: + return settings->TcpKeepAliveInterval; + + case FreeRDP_TcpAckTimeout: + return settings->TcpAckTimeout; + default: WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id); return FALSE; @@ -1989,6 +2008,22 @@ BOOL freerdp_settings_set_uint32(rdpSettings* settings, size_t id, UINT32 val) settings->DynamicChannelArraySize = val; break; + case FreeRDP_TcpKeepAliveRetries: + settings->TcpKeepAliveRetries = val; + break; + + case FreeRDP_TcpKeepAliveDelay: + settings->TcpKeepAliveDelay = val; + break; + + case FreeRDP_TcpKeepAliveInterval: + settings->TcpKeepAliveInterval = val; + break; + + case FreeRDP_TcpAckTimeout: + settings->TcpAckTimeout = val; + break; + default: WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id); return FALSE; @@ -1996,7 +2031,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 +2072,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 +2106,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 +2133,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 +2680,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 +2690,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 +2717,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/settings.c b/libfreerdp/core/settings.c index 0efa7192b..11c3feb2e 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -559,6 +559,12 @@ rdpSettings* freerdp_settings_new(DWORD flags) if (!settings->DynamicChannelArray) goto out_fail; + settings->TcpKeepAlive = TRUE; + settings->TcpKeepAliveRetries = 3; + settings->TcpKeepAliveDelay = 5; + settings->TcpKeepAliveInterval = 2; + settings->TcpAckTimeout = 9000; + if (!settings->ServerMode) { settings->RedirectClipboard = TRUE; diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index 1932fcd31..f1ecc6bc3 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -100,8 +100,8 @@ typedef struct _WINPR_BIO_SIMPLE_SOCKET WINPR_BIO_SIMPLE_SOCKET; static int transport_bio_simple_init(BIO* bio, SOCKET socket, int shutdown); static int transport_bio_simple_uninit(BIO* bio); -long transport_bio_simple_callback(BIO* bio, int mode, const char* argp, int argi, long argl, - long ret) +static long transport_bio_simple_callback(BIO* bio, int mode, const char* argp, int argi, long argl, + long ret) { return 1; } @@ -459,8 +459,8 @@ struct _WINPR_BIO_BUFFERED_SOCKET }; typedef struct _WINPR_BIO_BUFFERED_SOCKET WINPR_BIO_BUFFERED_SOCKET; -long transport_bio_buffered_callback(BIO* bio, int mode, const char* argp, int argi, long argl, - long ret) +static long transport_bio_buffered_callback(BIO* bio, int mode, const char* argp, int argi, + long argl, long ret) { return 1; } @@ -991,12 +991,12 @@ static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, UINT return sockfd; } -BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) +static BOOL freerdp_tcp_set_keep_alive_mode(const rdpSettings* settings, int sockfd) { -#ifndef _WIN32 + const BOOL keepalive = (freerdp_settings_get_bool(settings, FreeRDP_TcpKeepAlive)); UINT32 optval; socklen_t optlen; - optval = 1; + optval = keepalive ? 1 : 0; optlen = sizeof(optval); if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (void*)&optval, optlen) < 0) @@ -1004,8 +1004,9 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) WLog_WARN(TAG, "setsockopt() SOL_SOCKET, SO_KEEPALIVE"); } +#ifndef _WIN32 #ifdef TCP_KEEPIDLE - optval = 5; + optval = keepalive ? freerdp_settings_get_uint32(settings, FreeRDP_TcpKeepAliveDelay) : 0; optlen = sizeof(optval); if (setsockopt(sockfd, IPPROTO_TCP, TCP_KEEPIDLE, (void*)&optval, optlen) < 0) @@ -1019,7 +1020,7 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) #define SOL_TCP 6 #endif #ifdef TCP_KEEPCNT - optval = 3; + optval = keepalive ? freerdp_settings_get_uint32(settings, FreeRDP_TcpKeepAliveRetries) : 0; optlen = sizeof(optval); if (setsockopt(sockfd, SOL_TCP, TCP_KEEPCNT, (void*)&optval, optlen) < 0) @@ -1029,7 +1030,7 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) #endif #ifdef TCP_KEEPINTVL - optval = 2; + optval = keepalive ? freerdp_settings_get_uint32(settings, FreeRDP_TcpKeepAliveInterval) : 0; optlen = sizeof(optval); if (setsockopt(sockfd, SOL_TCP, TCP_KEEPINTVL, (void*)&optval, optlen) < 0) @@ -1050,7 +1051,7 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) #endif #ifdef TCP_USER_TIMEOUT - optval = 9000; + optval = freerdp_settings_get_uint32(settings, FreeRDP_TcpAckTimeout); optlen = sizeof(optval); if (setsockopt(sockfd, SOL_TCP, TCP_USER_TIMEOUT, (void*)&optval, optlen) < 0) @@ -1231,7 +1232,7 @@ int freerdp_tcp_connect(rdpContext* context, rdpSettings* settings, const char* if (!ipcSocket && !useExternalDefinedSocket) { - if (!freerdp_tcp_set_keep_alive_mode(sockfd)) + if (!freerdp_tcp_set_keep_alive_mode(settings, sockfd)) { close(sockfd); diff --git a/libfreerdp/core/test/settings_property_lists.h b/libfreerdp/core/test/settings_property_lists.h index f76292794..8e608c970 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 @@ -280,6 +281,10 @@ static const size_t uint32_list_indices[] = { FreeRDP_StaticChannelArraySize, FreeRDP_DynamicChannelCount, FreeRDP_DynamicChannelArraySize, + FreeRDP_TcpKeepAliveRetries, + FreeRDP_TcpKeepAliveDelay, + FreeRDP_TcpKeepAliveInterval, + FreeRDP_TcpAckTimeout, }; #define have_int32_list_indices @@ -364,18 +369,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 +379,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: