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,12 +40,27 @@ public class GlobalInstanceOptionsValidator : AbstractValidator<GlobalInstanceOp
{ {
// TODO use HttpClient here // TODO use HttpClient here
var request = (HttpWebRequest)WebRequest.Create(url); var request = (HttpWebRequest)WebRequest.Create(url);
request.AllowAutoRedirect = true; request.AllowAutoRedirect = false;
request.Timeout = 3000; request.Timeout = 3000;
using var response = (HttpWebResponse)request.GetResponse(); using var response = (HttpWebResponse)request.GetResponse();
reachable = response.StatusCode == HttpStatusCode.OK; reachable = response.StatusCode == HttpStatusCode.OK;
if (reachable) if (reachable)
{
break; 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 catch
{ {