Fix reachable check for ultra cc seedbox

This commit is contained in:
pcjones
2024-09-10 17:52:36 +02:00
parent fcf85a5ad1
commit 4be90e74b3

View File

@@ -40,16 +40,31 @@ public class GlobalInstanceOptionsValidator : AbstractValidator<GlobalInstanceOp
{
// TODO use HttpClient here
var request = (HttpWebRequest)WebRequest.Create(url);
request.AllowAutoRedirect = true;
request.AllowAutoRedirect = false;
request.Timeout = 3000;
using var response = (HttpWebResponse)request.GetResponse();
reachable = response.StatusCode == HttpStatusCode.OK;
if (reachable)
{
break;
}
// If status is 301/302 (Found), follow the redirect manually
else if (response.StatusCode == HttpStatusCode.MovedPermanently || response.StatusCode == HttpStatusCode.Found)
{
var redirectUrl = response.Headers["Location"]; // Get the redirect URL
if (!string.IsNullOrEmpty(redirectUrl))
{
// Create a new request for the redirected URL
var redirectRequest = (HttpWebRequest)WebRequest.Create(redirectUrl);
redirectRequest.Timeout = 3000;
using var redirectResponse = (HttpWebResponse)redirectRequest.GetResponse();
reachable = redirectResponse.StatusCode == HttpStatusCode.OK;
}
}
}
catch
{
}
// Wait for 15 seconds for next try