aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs
diff options
context:
space:
mode:
authorClaus Vium <clausvium@gmail.com>2019-02-24 21:44:56 +0100
committerClaus Vium <clausvium@gmail.com>2019-02-24 21:45:03 +0100
commit6e07eab247f51532e74de7ceaaf567156c46e39c (patch)
treea4b05e76be44e49ae180a19c0f4a98b66c96976a /Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs
parent4a3e42e7794bd8b337ded2d38ad12298be7e819e (diff)
Don't close the socket response multiple times
Diffstat (limited to 'Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs')
-rw-r--r--Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs23
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");