mirror of https://github.com/Jackett/Jackett
Improve error handling if the tracker is down
This commit is contained in:
parent
cfdafa01c9
commit
0cd11e1882
|
@ -336,6 +336,7 @@ namespace Jackett.Indexers
|
|||
if (cookieOverride != null)
|
||||
request.Cookies = cookieOverride;
|
||||
WebClientStringResult result = await webclient.GetString(request);
|
||||
CheckTrackerDown(result);
|
||||
UpdateCookieHeader(result.Cookies, cookieOverride);
|
||||
return result;
|
||||
}
|
||||
|
@ -395,6 +396,7 @@ namespace Jackett.Indexers
|
|||
if (emulateBrowser.HasValue)
|
||||
request.EmulateBrowser = emulateBrowser.Value;
|
||||
WebClientStringResult result = await webclient.GetString(request);
|
||||
CheckTrackerDown(result);
|
||||
UpdateCookieHeader(result.Cookies, cookieOverride);
|
||||
return result;
|
||||
}
|
||||
|
@ -431,6 +433,7 @@ namespace Jackett.Indexers
|
|||
Encoding = Encoding
|
||||
};
|
||||
var response = await webclient.GetString(request);
|
||||
CheckTrackerDown(response);
|
||||
if (accumulateCookies)
|
||||
{
|
||||
response.Cookies = ResolveCookies((request.Cookies == null ? "" : request.Cookies + " ") + response.Cookies);
|
||||
|
@ -450,6 +453,18 @@ namespace Jackett.Indexers
|
|||
return response;
|
||||
}
|
||||
|
||||
protected void CheckTrackerDown(WebClientStringResult response)
|
||||
{
|
||||
if (response.Status == System.Net.HttpStatusCode.BadGateway
|
||||
|| response.Status == System.Net.HttpStatusCode.GatewayTimeout
|
||||
|| (int)response.Status == 521 // used by cloudflare to signal the original webserver is refusing the connection
|
||||
|| (int)response.Status == 522 // used by cloudflare to signal the original webserver is not reachable at all (timeout)
|
||||
)
|
||||
{
|
||||
throw new Exception("Request to " + response.Request.Url + " failed (Error " + response.Status + ") - The tracker seems to be down.");
|
||||
}
|
||||
}
|
||||
|
||||
protected async Task FollowIfRedirect(WebClientStringResult response, string referrer = null, string overrideRedirectUrl = null, string overrideCookies = null, bool accumulateCookies = false)
|
||||
{
|
||||
var byteResult = new WebClientByteResult();
|
||||
|
|
Loading…
Reference in New Issue