Set default connection type to autodetect for RDP files.
@@ -1049,6 +1049,8 @@ size_t freerdp_client_write_rdp_file_buffer(const rdpFile* file, char* buffer, s
BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings* settings)
{
+ BOOL setDefaultConnectionType = TRUE;
+
if (~((size_t)file->Domain))
{
if (!freerdp_settings_set_string(settings, FreeRDP_Domain, file->Domain))
@@ -1233,8 +1235,9 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
if (~file->ConnectionType)
{
- if (!freerdp_settings_set_uint32(settings, FreeRDP_ConnectionType, file->ConnectionType))
+ if (!freerdp_set_connection_type(settings, file->ConnectionType))
return FALSE;
+ setDefaultConnectionType = FALSE;
}
if (~file->AudioMode)
@@ -1438,11 +1441,19 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
if (~file->BandwidthAutoDetect)
{
- if (!freerdp_set_connection_type(settings, file->BandwidthAutoDetect))
+ if (file->BandwidthAutoDetect != 0)
+ {
+ if (!freerdp_set_connection_type(settings, CONNECTION_TYPE_AUTODETECT))
+ return FALSE;
+ setDefaultConnectionType = FALSE;
+ }
+ if (!freerdp_settings_set_bool(settings, FreeRDP_NetworkAutoDetect, file->BandwidthAutoDetect != 0))
return FALSE;
}
if (~file->NetworkAutoDetect)
+ {
+ if (file->NetworkAutoDetect == 0)
{
if (file->BandwidthAutoDetect != CONNECTION_TYPE_AUTODETECT)
{
@@ -1453,6 +1464,10 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
if (!freerdp_set_connection_type(settings, CONNECTION_TYPE_AUTODETECT))
return FALSE;
+ setDefaultConnectionType = FALSE;
+ }
+ if (!freerdp_settings_set_bool(settings, FreeRDP_NetworkAutoDetect, file->NetworkAutoDetect == 0))
+ return FALSE;
}
if (~file->AutoReconnectionEnabled)
@@ -1580,6 +1595,12 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
settings->ConnectionFile = ConnectionFile;
}
+ if (setDefaultConnectionType)
+ {
+ if (!freerdp_set_connection_type(settings, CONNECTION_TYPE_AUTODETECT))
+ return FALSE;
+ }
+
return TRUE;
}
