Skip to content

Commit 3883dc8

Browse files
committed
fixed ssl crash
1 parent 7dcca75 commit 3883dc8

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

Data/Technic.cs

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,36 @@ namespace NewRGB.Data;
99

1010
public class Technic(string modpackName)
1111
{
12-
private readonly HttpClient _httpClient = new();
12+
private static readonly HttpClientHandler ClientHandler = new();
13+
private readonly HttpClient _httpClient = new(ClientHandler);
1314
private const int BuildVersion = 69420;
1415
private string _version = "";
1516
private string _downloadUrl = "";
1617
private readonly string _modpackZipPath = Path.Combine(DataManager.Instance.DataPath, "modpack.zip");
1718

18-
public async Task Init()
19+
static Technic()
1920
{
20-
var response =
21-
await _httpClient.GetAsync($"https://api.technicpack.net/modpack/{modpackName}?build={BuildVersion}");
22-
response.EnsureSuccessStatusCode();
23-
var responseBody = await response.Content.ReadAsStringAsync();
24-
var json = JsonNode.Parse(responseBody) ?? throw new Exception("can't parse json");
25-
_version = json["version"]!.GetValue<string>();
26-
_downloadUrl = json["url"]!.GetValue<string>();
21+
ClientHandler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true;
22+
}
23+
24+
public async Task<bool> Init()
25+
{
26+
try
27+
{
28+
var response =
29+
await _httpClient.GetAsync($"https://api.technicpack.net/modpack/{modpackName}?build={BuildVersion}");
30+
response.EnsureSuccessStatusCode();
31+
var responseBody = await response.Content.ReadAsStringAsync();
32+
var json = JsonNode.Parse(responseBody) ?? throw new Exception("can't parse json");
33+
_version = json["version"]!.GetValue<string>();
34+
_downloadUrl = json["url"]!.GetValue<string>();
35+
return true;
36+
}
37+
catch (HttpRequestException e)
38+
{
39+
Console.Error.WriteLine(e);
40+
return false;
41+
}
2742
}
2843

2944
public async Task<bool> CheckUpdate()
@@ -42,7 +57,7 @@ public async Task SaveVersion()
4257

4358
public Task<DownloadProgress?> DownloadUpdate()
4459
{
45-
return DownloadProgress.Download(_downloadUrl, _modpackZipPath, _httpClient);
60+
return DownloadProgress.Download(_downloadUrl, _modpackZipPath);
4661
}
4762

4863
public async Task<InstallProgress> InstallUpdate()

ViewModels/MainViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,8 @@ private async Task OnLoaded()
619619
}
620620

621621
UpdateProgress(0.0f, "Checking for updates", false);
622-
await _technic.Init();
622+
if (!await _technic.Init()) UpdateProgress(1.0f, "Can't download info from technic");
623+
623624
_needsUpdate = await _technic.CheckUpdate();
624625
if (_needsUpdate)
625626
{

0 commit comments

Comments
 (0)