commit
d6d9fce898
|
@ -86,9 +86,7 @@ namespace Jellyfin.SocketSharp
|
||||||
|
|
||||||
private static readonly char[] HttpTrimCharacters = new char[] { (char)0x09, (char)0xA, (char)0xB, (char)0xC, (char)0xD, (char)0x20 };
|
private static readonly char[] HttpTrimCharacters = new char[] { (char)0x09, (char)0xA, (char)0xB, (char)0xC, (char)0xD, (char)0x20 };
|
||||||
|
|
||||||
//
|
|
||||||
// CheckBadChars - throws on invalid chars to be not found in header name/value
|
// CheckBadChars - throws on invalid chars to be not found in header name/value
|
||||||
//
|
|
||||||
internal static string CheckBadChars(string name)
|
internal static string CheckBadChars(string name)
|
||||||
{
|
{
|
||||||
if (name == null || name.Length == 0)
|
if (name == null || name.Length == 0)
|
||||||
|
@ -97,11 +95,11 @@ namespace Jellyfin.SocketSharp
|
||||||
}
|
}
|
||||||
|
|
||||||
// VALUE check
|
// VALUE check
|
||||||
//Trim spaces from both ends
|
// Trim spaces from both ends
|
||||||
name = name.Trim(HttpTrimCharacters);
|
name = name.Trim(HttpTrimCharacters);
|
||||||
|
|
||||||
//First, check for correctly formed multi-line value
|
// First, check for correctly formed multi-line value
|
||||||
//Second, check for absenece of CTL characters
|
// Second, check for absenece of CTL characters
|
||||||
int crlf = 0;
|
int crlf = 0;
|
||||||
for (int i = 0; i < name.Length; ++i)
|
for (int i = 0; i < name.Length; ++i)
|
||||||
{
|
{
|
||||||
|
@ -198,7 +196,10 @@ namespace Jellyfin.SocketSharp
|
||||||
public static string GetResponseContentType(IRequest httpReq)
|
public static string GetResponseContentType(IRequest httpReq)
|
||||||
{
|
{
|
||||||
var specifiedContentType = GetQueryStringContentType(httpReq);
|
var specifiedContentType = GetQueryStringContentType(httpReq);
|
||||||
if (!string.IsNullOrEmpty(specifiedContentType)) return specifiedContentType;
|
if (!string.IsNullOrEmpty(specifiedContentType))
|
||||||
|
{
|
||||||
|
return specifiedContentType;
|
||||||
|
}
|
||||||
|
|
||||||
var serverDefaultContentType = "application/json";
|
var serverDefaultContentType = "application/json";
|
||||||
|
|
||||||
|
@ -237,7 +238,7 @@ namespace Jellyfin.SocketSharp
|
||||||
return Soap11;
|
return Soap11;
|
||||||
}
|
}
|
||||||
|
|
||||||
//We could also send a '406 Not Acceptable', but this is allowed also
|
// We could also send a '406 Not Acceptable', but this is allowed also
|
||||||
return serverDefaultContentType;
|
return serverDefaultContentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,7 +253,10 @@ namespace Jellyfin.SocketSharp
|
||||||
|
|
||||||
foreach (var contentType in contentTypes)
|
foreach (var contentType in contentTypes)
|
||||||
{
|
{
|
||||||
if (IsContentType(request, contentType)) return true;
|
if (IsContentType(request, contentType))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -274,10 +278,12 @@ namespace Jellyfin.SocketSharp
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pi[0] == '/')
|
if (pi[0] == '/')
|
||||||
{
|
{
|
||||||
pi = pi.Substring(1);
|
pi = pi.Substring(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
format = LeftPart(pi, '/');
|
format = LeftPart(pi, '/');
|
||||||
if (format.Length > formatMaxLength)
|
if (format.Length > formatMaxLength)
|
||||||
{
|
{
|
||||||
|
@ -285,7 +291,7 @@ namespace Jellyfin.SocketSharp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
format = LeftPart(format, '.').ToLowerInvariant();
|
format = LeftPart(format, '.');
|
||||||
if (format.Contains("json", StringComparison.OrdinalIgnoreCase))
|
if (format.Contains("json", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return "application/json";
|
return "application/json";
|
||||||
|
@ -349,7 +355,7 @@ namespace Jellyfin.SocketSharp
|
||||||
return pathInfo;
|
return pathInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Wildcard mode relies on this to work out the handlerPath
|
// Wildcard mode relies on this to work out the handlerPath
|
||||||
pathInfo = ResolvePathInfoFromMappedPath(fullPath, appPath);
|
pathInfo = ResolvePathInfoFromMappedPath(fullPath, appPath);
|
||||||
if (!string.IsNullOrEmpty(pathInfo))
|
if (!string.IsNullOrEmpty(pathInfo))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user