Skip to content

Commit 4eb2526

Browse files
committed
fix a potential crash with invalid proxy URIs
1 parent b0fefdc commit 4eb2526

1 file changed

Lines changed: 28 additions & 19 deletions

File tree

src/UniGetUI/MainWindow.xaml.cs

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -169,33 +169,42 @@ public MainWindow()
169169

170170
public static void ApplyProxyVariableToProcess()
171171
{
172-
var proxyUri = Settings.GetProxyUrl();
173-
if (proxyUri is null || !Settings.Get("EnableProxy"))
172+
try
174173
{
175-
Environment.SetEnvironmentVariable("HTTP_PROXY", "", EnvironmentVariableTarget.Process);
176-
return;
177-
}
174+
var proxyUri = Settings.GetProxyUrl();
175+
if (proxyUri is null || !Settings.Get("EnableProxy"))
176+
{
177+
Environment.SetEnvironmentVariable("HTTP_PROXY", "", EnvironmentVariableTarget.Process);
178+
return;
179+
}
178180

179-
string content;
180-
if (Settings.Get("EnableProxyAuth") is false)
181-
{
182-
content = proxyUri.ToString();
183-
}
184-
else
185-
{
186-
var creds = Settings.GetProxyCredentials();
187-
if (creds is null)
181+
string content;
182+
if (Settings.Get("EnableProxyAuth") is false)
188183
{
189-
content = $"--proxy {proxyUri.ToString()}";
184+
content = proxyUri.ToString();
190185
}
191186
else
192187
{
193-
content = $"{proxyUri.Scheme}://{Uri.EscapeDataString(creds.UserName)}" +
194-
$":{Uri.EscapeDataString(creds.Password)}" +
195-
$"@{proxyUri.AbsoluteUri.Replace($"{proxyUri.Scheme}://", "")}";
188+
var creds = Settings.GetProxyCredentials();
189+
if (creds is null)
190+
{
191+
content = $"--proxy {proxyUri.ToString()}";
192+
}
193+
else
194+
{
195+
content = $"{proxyUri.Scheme}://{Uri.EscapeDataString(creds.UserName)}" +
196+
$":{Uri.EscapeDataString(creds.Password)}" +
197+
$"@{proxyUri.AbsoluteUri.Replace($"{proxyUri.Scheme}://", "")}";
198+
}
196199
}
200+
201+
Environment.SetEnvironmentVariable("HTTP_PROXY", content, EnvironmentVariableTarget.Process);
202+
}
203+
catch (Exception ex)
204+
{
205+
Logger.Error("Failed to apply proxy settings:");
206+
Logger.Error(ex);
197207
}
198-
Environment.SetEnvironmentVariable("HTTP_PROXY", content, EnvironmentVariableTarget.Process);
199208
}
200209

201210
private void AddToSubtitle(string line)

0 commit comments

Comments
 (0)