mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-08-27 04:16:47 +00:00
Don't set status code if response is closed
This commit is contained in:
parent
10a0d6bdba
commit
3fa43a1e08
6 changed files with 19 additions and 50 deletions
|
|
@ -90,7 +90,10 @@ namespace Emby.Server.Implementations.SocketSharp
|
|||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "AcceptWebSocketAsync error");
|
||||
ctx.Response.StatusCode = 500;
|
||||
if (!ctx.Response.HasStarted)
|
||||
{
|
||||
ctx.Response.StatusCode = 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,22 +20,19 @@ namespace Emby.Server.Implementations.SocketSharp
|
|||
public partial class WebSocketSharpRequest : IHttpRequest
|
||||
{
|
||||
private readonly HttpRequest request;
|
||||
private readonly IResponse response;
|
||||
|
||||
public WebSocketSharpRequest(HttpRequest httpContext, HttpResponse response, string operationName, ILogger logger)
|
||||
{
|
||||
this.OperationName = operationName;
|
||||
this.request = httpContext;
|
||||
this.response = new WebSocketSharpResponse(logger, response, this);
|
||||
this.Response = new WebSocketSharpResponse(logger, response);
|
||||
|
||||
// HandlerFactoryPath = GetHandlerPathIfAny(UrlPrefixes[0]);
|
||||
}
|
||||
|
||||
public HttpRequest HttpRequest => request;
|
||||
|
||||
public IResponse Response => response;
|
||||
|
||||
public IResponse HttpResponse => response;
|
||||
public IResponse Response { get; }
|
||||
|
||||
public string OperationName { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -16,38 +16,28 @@ namespace Emby.Server.Implementations.SocketSharp
|
|||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly HttpResponse _response;
|
||||
|
||||
public WebSocketSharpResponse(ILogger logger, HttpResponse response, IRequest request)
|
||||
public WebSocketSharpResponse(ILogger logger, HttpResponse response)
|
||||
{
|
||||
_logger = logger;
|
||||
this._response = response;
|
||||
Items = new Dictionary<string, object>();
|
||||
Request = request;
|
||||
OriginalResponse = response;
|
||||
}
|
||||
|
||||
public IRequest Request { get; private set; }
|
||||
|
||||
public Dictionary<string, object> Items { get; private set; }
|
||||
|
||||
public object OriginalResponse => _response;
|
||||
public HttpResponse OriginalResponse { get; }
|
||||
|
||||
public int StatusCode
|
||||
{
|
||||
get => this._response.StatusCode;
|
||||
set => this._response.StatusCode = value;
|
||||
get => OriginalResponse.StatusCode;
|
||||
set => OriginalResponse.StatusCode = value;
|
||||
}
|
||||
|
||||
public string StatusDescription { get; set; }
|
||||
|
||||
public string ContentType
|
||||
{
|
||||
get => _response.ContentType;
|
||||
set => _response.ContentType = value;
|
||||
get => OriginalResponse.ContentType;
|
||||
set => OriginalResponse.ContentType = value;
|
||||
}
|
||||
|
||||
public IHeaderDictionary Headers => _response.Headers;
|
||||
|
||||
public void AddHeader(string name, string value)
|
||||
{
|
||||
if (string.Equals(name, "Content-Type", StringComparison.OrdinalIgnoreCase))
|
||||
|
|
@ -56,22 +46,15 @@ namespace Emby.Server.Implementations.SocketSharp
|
|||
return;
|
||||
}
|
||||
|
||||
_response.Headers.Add(name, value);
|
||||
}
|
||||
|
||||
public string GetHeader(string name)
|
||||
{
|
||||
return _response.Headers[name];
|
||||
OriginalResponse.Headers.Add(name, value);
|
||||
}
|
||||
|
||||
public void Redirect(string url)
|
||||
{
|
||||
_response.Redirect(url);
|
||||
OriginalResponse.Redirect(url);
|
||||
}
|
||||
|
||||
public Stream OutputStream => _response.Body;
|
||||
|
||||
public bool IsClosed { get; set; }
|
||||
public Stream OutputStream => OriginalResponse.Body;
|
||||
|
||||
public bool SendChunked { get; set; }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue