From bfea66d5e90e6d9a3a7deecf05a40649d8fa4cb3 Mon Sep 17 00:00:00 2001 From: Adrian Vollmer Date: Mon, 4 Apr 2022 16:07:41 +0200 Subject: [PATCH] Set default ports for http and socks proxies --- libfreerdp/core/proxy.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/libfreerdp/core/proxy.c b/libfreerdp/core/proxy.c index 6279365ff..12d43bf56 100644 --- a/libfreerdp/core/proxy.c +++ b/libfreerdp/core/proxy.c @@ -320,6 +320,7 @@ BOOL proxy_parse_uri(rdpSettings* settings, const char* uri_in) { BOOL rc = FALSE; const char* protocol = ""; + UINT16 port; char* p; char* atPtr; char* uri_copy = _strdup(uri_in); @@ -422,16 +423,27 @@ BOOL proxy_parse_uri(rdpSettings* settings, const char* uri_in) goto fail; } - if (!freerdp_settings_set_uint16(settings, FreeRDP_ProxyPort, (UINT16)val)) - goto fail; + port = (UINT16)val; *p = '\0'; } else { - WLog_ERR(TAG, "invalid syntax for proxy (port missing)"); - goto fail; + if (_stricmp("http", protocol) == 0) + { + /* The default is 80. Also for Proxys. */ + port = 80; + } + else + { + port = 1080; + } + + WLog_DBG(TAG, "setting default proxy port: %d", port); } + if (!freerdp_settings_set_uint16(settings, FreeRDP_ProxyPort, port)) + goto fail; + p = strchr(uri, '/'); if (p) *p = '\0';