From 0212c0b85ffffbc62b475f14901f4242c4a108d2 Mon Sep 17 00:00:00 2001 From: Bond-009 Date: Wed, 9 Oct 2019 16:08:50 +0200 Subject: [PATCH] Merge pull request #1870 from JustAMan/fix-http-ex1 Fix exception when handling error, log errors better (cherry picked from commit d8d2e52e3ffaa59a32cc2cbb4997022b979f9ca0) Signed-off-by: Joshua Boniface --- .gitattributes | 2 ++ .../HttpServer/HttpListenerHost.cs | 20 ++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitattributes b/.gitattributes index d78b0459d8..8ae5997258 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ * text=auto eol=lf +*.png binary +*.jpg binary CONTRIBUTORS.md merge=union diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs index ecd35a1a84..e4f98acb9b 100644 --- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -224,7 +224,7 @@ namespace Emby.Server.Implementations.HttpServer } } - private async Task ErrorHandler(Exception ex, IRequest httpReq, bool logExceptionStackTrace, bool logExceptionMessage) + private async Task ErrorHandler(Exception ex, IRequest httpReq, bool logExceptionStackTrace) { try { @@ -234,9 +234,9 @@ namespace Emby.Server.Implementations.HttpServer { _logger.LogError(ex, "Error processing request"); } - else if (logExceptionMessage) + else { - _logger.LogError(ex.Message); + _logger.LogError("Error processing request: {Message}", ex.Message); } var httpRes = httpReq.Response; @@ -249,8 +249,10 @@ namespace Emby.Server.Implementations.HttpServer var statusCode = GetStatusCode(ex); httpRes.StatusCode = statusCode; - httpRes.ContentType = "text/html"; - await httpRes.WriteAsync(NormalizeExceptionMessage(ex.Message)).ConfigureAwait(false); + var errContent = NormalizeExceptionMessage(ex.Message); + httpRes.ContentType = "text/plain"; + httpRes.ContentLength = errContent.Length; + await httpRes.WriteAsync(errContent).ConfigureAwait(false); } catch (Exception errorEx) { @@ -518,22 +520,22 @@ namespace Emby.Server.Implementations.HttpServer } else { - await ErrorHandler(new FileNotFoundException(), httpReq, false, false).ConfigureAwait(false); + await ErrorHandler(new FileNotFoundException(), httpReq, false).ConfigureAwait(false); } } catch (Exception ex) when (ex is SocketException || ex is IOException || ex is OperationCanceledException) { - await ErrorHandler(ex, httpReq, false, false).ConfigureAwait(false); + await ErrorHandler(ex, httpReq, false).ConfigureAwait(false); } catch (SecurityException ex) { - await ErrorHandler(ex, httpReq, false, true).ConfigureAwait(false); + await ErrorHandler(ex, httpReq, false).ConfigureAwait(false); } catch (Exception ex) { var logException = !string.Equals(ex.GetType().Name, "SocketException", StringComparison.OrdinalIgnoreCase); - await ErrorHandler(ex, httpReq, logException, false).ConfigureAwait(false); + await ErrorHandler(ex, httpReq, logException).ConfigureAwait(false); } finally {