diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index a1ea179040..0b4a2fd30e 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -1676,7 +1676,7 @@ namespace Emby.Server.Implementations
LogErrorResponseBody = false,
LogErrors = logPing,
LogRequest = logPing,
- TimeoutMs = 30000,
+ TimeoutMs = 5000,
BufferContent = false,
CancellationToken = cancellationToken
diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
index a4dac4a7f9..230e4892c7 100644
--- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj
+++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
@@ -40,6 +40,7 @@
+
diff --git a/Emby.Server.Implementations/SocketSharp/WebSocketSharpRequest.cs b/Emby.Server.Implementations/SocketSharp/WebSocketSharpRequest.cs
index 146862e02b..35fff08216 100644
--- a/Emby.Server.Implementations/SocketSharp/WebSocketSharpRequest.cs
+++ b/Emby.Server.Implementations/SocketSharp/WebSocketSharpRequest.cs
@@ -273,11 +273,11 @@ namespace Emby.Server.Implementations.SocketSharp
private static string GetQueryStringContentType(HttpRequest httpReq)
{
- string format = httpReq.Query["format"];
+ ReadOnlySpan format = httpReq.Query["format"].ToString().AsSpan();
if (format == null)
{
const int formatMaxLength = 4;
- string pi = httpReq.Path.ToString();
+ ReadOnlySpan pi = httpReq.Path.ToString().AsSpan();
if (pi == null || pi.Length <= formatMaxLength)
{
return null;
@@ -285,7 +285,7 @@ namespace Emby.Server.Implementations.SocketSharp
if (pi[0] == '/')
{
- pi = pi.Substring(1);
+ pi = pi.Slice(1);
}
format = LeftPart(pi, '/');
@@ -296,11 +296,11 @@ namespace Emby.Server.Implementations.SocketSharp
}
format = LeftPart(format, '.');
- if (format.ToLower().Contains("json"))
+ if (format.Contains("json".AsSpan(), StringComparison.OrdinalIgnoreCase))
{
return "application/json";
}
- else if (format.ToLower().Contains("xml"))
+ else if (format.Contains("xml".AsSpan(), StringComparison.OrdinalIgnoreCase))
{
return "application/xml";
}
@@ -308,25 +308,14 @@ namespace Emby.Server.Implementations.SocketSharp
return null;
}
- public static string LeftPart(string strVal, char needle)
+ public static ReadOnlySpan LeftPart(ReadOnlySpan strVal, char needle)
{
if (strVal == null)
{
return null;
}
- var pos = strVal.IndexOf(needle.ToString(), StringComparison.Ordinal);
- return pos == -1 ? strVal : strVal.Substring(0, pos);
- }
-
- public static ReadOnlySpan LeftPart(ReadOnlySpan strVal, char needle)
- {
- if (strVal == null)
- {
- return null;
- }
-
- var pos = strVal.IndexOf(needle.ToString());
+ var pos = strVal.IndexOf(needle);
return pos == -1 ? strVal : strVal.Slice(0, pos);
}