aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrobibero <cody@robibe.ro>2020-12-10 08:25:05 -0700
committercrobibero <cody@robibe.ro>2020-12-10 08:25:05 -0700
commita9aafbaf5a6c7c90e815a4844c7f71215ee25420 (patch)
tree82f03bbab5dcd203a57f97967925100e92edc986
parente62124440539e814bb5036ffd646081528f1ca09 (diff)
Don't throw exception unless needed
-rw-r--r--Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs31
1 files changed, 13 insertions, 18 deletions
diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
index 2073b9ef1..90e6cc966 100644
--- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
+++ b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
@@ -611,30 +611,25 @@ namespace Emby.Server.Implementations.LiveTv.Listings
CancellationToken cancellationToken,
HttpCompletionOption completionOption = HttpCompletionOption.ResponseContentRead)
{
- HttpResponseMessage response = null;
- try
+ var response = await _httpClientFactory.CreateClient(NamedClient.Default)
+ .SendAsync(options, completionOption, cancellationToken).ConfigureAwait(false);
+ if (response.IsSuccessStatusCode)
{
- response = await _httpClientFactory.CreateClient(NamedClient.Default)
- .SendAsync(options, completionOption, cancellationToken).ConfigureAwait(false);
- response.EnsureSuccessStatusCode();
return response;
}
- catch (HttpRequestException ex)
- {
- response?.Dispose();
- _tokens.Clear();
- if (!ex.StatusCode.HasValue || (int)ex.StatusCode.Value >= 500)
- {
- enableRetry = false;
- }
-
- if (!enableRetry)
- {
- throw;
- }
+ // Response is automatically disposed in the calling function,
+ // so dispose manually if not returning.
+ response.Dispose();
+ if (!enableRetry || (int)response.StatusCode >= 500)
+ {
+ throw new HttpRequestException(
+ string.Format(CultureInfo.InvariantCulture, "Request failed: {0}", response.ReasonPhrase),
+ null,
+ response.StatusCode);
}
+ _tokens.Clear();
options.Headers.TryAddWithoutValidation("token", await GetToken(providerInfo, cancellationToken).ConfigureAwait(false));
return await Send(options, false, providerInfo, cancellationToken).ConfigureAwait(false);
}