diff options
| author | Claus Vium <clausvium@gmail.com> | 2019-02-24 21:44:56 +0100 |
|---|---|---|
| committer | Claus Vium <clausvium@gmail.com> | 2019-02-24 21:45:03 +0100 |
| commit | 6e07eab247f51532e74de7ceaaf567156c46e39c (patch) | |
| tree | a4b05e76be44e49ae180a19c0f4a98b66c96976a /Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs | |
| parent | 4a3e42e7794bd8b337ded2d38ad12298be7e819e (diff) | |
Don't close the socket response multiple times
Diffstat (limited to 'Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs')
| -rw-r--r-- | Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs b/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs index 736f9feef..3b9875318 100644 --- a/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs +++ b/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs @@ -129,6 +129,7 @@ namespace Jellyfin.Server.SocketSharp private async Task ProcessWebSocketRequest(HttpListenerContext ctx) { + int statusCode = 200; try { var endpoint = ctx.Request.RemoteEndPoint.ToString(); @@ -164,33 +165,23 @@ namespace Jellyfin.Server.SocketSharp Endpoint = endpoint }); - await ReceiveWebSocketAsync(ctx, socket).ConfigureAwait(false); + await socket.StartReceive().ConfigureAwait(false); } } else { _logger.LogWarning("Web socket connection not allowed"); - ctx.Response.StatusCode = 401; - ctx.Response.Close(); + statusCode = 401; } } catch (Exception ex) { _logger.LogError(ex, "AcceptWebSocketAsync error"); - ctx.Response.StatusCode = 500; - ctx.Response.Close(); - } - } - - private async Task ReceiveWebSocketAsync(HttpListenerContext ctx, SharpWebSocket socket) - { - try - { - await socket.StartReceive().ConfigureAwait(false); + statusCode = 500; } finally { - TryClose(ctx, 200); + TryClose(ctx, statusCode); } } @@ -201,10 +192,6 @@ namespace Jellyfin.Server.SocketSharp ctx.Response.StatusCode = statusCode; ctx.Response.Close(); } - catch (ObjectDisposedException) - { - // TODO: Investigate and properly fix. - } catch (Exception ex) { _logger.LogError(ex, "Error closing web socket response"); |
