|
@@ -11,7 +11,7 @@ namespace Jellyfin.SocketSharp
|
|
|
{
|
|
|
public partial class WebSocketSharpRequest : IHttpRequest
|
|
|
{
|
|
|
- static internal string GetParameter(string header, string attr)
|
|
|
+ internal static string GetParameter(string header, string attr)
|
|
|
{
|
|
|
int ap = header.IndexOf(attr);
|
|
|
if (ap == -1)
|
|
@@ -40,7 +40,7 @@ namespace Jellyfin.SocketSharp
|
|
|
return header.Substring(ap + 1, end - ap - 1);
|
|
|
}
|
|
|
|
|
|
- async Task LoadMultiPart(WebROCollection form)
|
|
|
+ private async Task LoadMultiPart(WebROCollection form)
|
|
|
{
|
|
|
string boundary = GetParameter(ContentType, "; boundary=");
|
|
|
if (boundary == null)
|
|
@@ -50,8 +50,8 @@ namespace Jellyfin.SocketSharp
|
|
|
|
|
|
using (var requestStream = InputStream)
|
|
|
{
|
|
|
- //DB: 30/01/11 - Hack to get around non-seekable stream and received HTTP request
|
|
|
- //Not ending with \r\n?
|
|
|
+ // DB: 30/01/11 - Hack to get around non-seekable stream and received HTTP request
|
|
|
+ // Not ending with \r\n?
|
|
|
var ms = new MemoryStream(32 * 1024);
|
|
|
await requestStream.CopyToAsync(ms).ConfigureAwait(false);
|
|
|
|
|
@@ -62,9 +62,9 @@ namespace Jellyfin.SocketSharp
|
|
|
input.Position = 0;
|
|
|
|
|
|
// Uncomment to debug
|
|
|
- //var content = new StreamReader(ms).ReadToEnd();
|
|
|
- //Console.WriteLine(boundary + "::" + content);
|
|
|
- //input.Position = 0;
|
|
|
+ // var content = new StreamReader(ms).ReadToEnd();
|
|
|
+ // Console.WriteLine(boundary + "::" + content);
|
|
|
+ // input.Position = 0;
|
|
|
|
|
|
var multi_part = new HttpMultipart(input, boundary, ContentEncoding);
|
|
|
|
|
@@ -111,7 +111,7 @@ namespace Jellyfin.SocketSharp
|
|
|
// Setting this before calling the validator prevents
|
|
|
// possible endless recursion
|
|
|
checked_form = true;
|
|
|
- ValidateNameValueCollection ("Form", query_string_nvc, RequestValidationSource.Form);
|
|
|
+ ValidateNameValueCollection("Form", query_string_nvc, RequestValidationSource.Form);
|
|
|
} else
|
|
|
#endif
|
|
|
if (validate_form && !checked_form)
|
|
@@ -130,7 +130,7 @@ namespace Jellyfin.SocketSharp
|
|
|
protected bool validate_cookies, validate_query_string, validate_form;
|
|
|
protected bool checked_cookies, checked_query_string, checked_form;
|
|
|
|
|
|
- static void ThrowValidationException(string name, string key, string value)
|
|
|
+ private static void ThrowValidationException(string name, string key, string value)
|
|
|
{
|
|
|
string v = "\"" + value + "\"";
|
|
|
if (v.Length > 20)
|
|
@@ -144,7 +144,7 @@ namespace Jellyfin.SocketSharp
|
|
|
throw new Exception(msg);
|
|
|
}
|
|
|
|
|
|
- static void ValidateNameValueCollection(string name, QueryParamCollection coll)
|
|
|
+ private static void ValidateNameValueCollection(string name, QueryParamCollection coll)
|
|
|
{
|
|
|
if (coll == null)
|
|
|
{
|
|
@@ -209,7 +209,7 @@ namespace Jellyfin.SocketSharp
|
|
|
validate_form = true;
|
|
|
}
|
|
|
|
|
|
- bool IsContentType(string ct, bool starts_with)
|
|
|
+ private bool IsContentType(string ct, bool starts_with)
|
|
|
{
|
|
|
if (ct == null || ContentType == null)
|
|
|
{
|
|
@@ -224,7 +224,7 @@ namespace Jellyfin.SocketSharp
|
|
|
return string.Equals(ContentType, ct, StringComparison.OrdinalIgnoreCase);
|
|
|
}
|
|
|
|
|
|
- async Task LoadWwwForm(WebROCollection form)
|
|
|
+ private async Task LoadWwwForm(WebROCollection form)
|
|
|
{
|
|
|
using (var input = InputStream)
|
|
|
{
|
|
@@ -280,7 +280,7 @@ namespace Jellyfin.SocketSharp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- static void AddRawKeyValue(WebROCollection form, StringBuilder key, StringBuilder value)
|
|
|
+ private static void AddRawKeyValue(WebROCollection form, StringBuilder key, StringBuilder value)
|
|
|
{
|
|
|
form.Add(WebUtility.UrlDecode(key.ToString()), WebUtility.UrlDecode(value.ToString()));
|
|
|
|
|
@@ -288,9 +288,9 @@ namespace Jellyfin.SocketSharp
|
|
|
value.Length = 0;
|
|
|
}
|
|
|
|
|
|
- Dictionary<string, HttpPostedFile> files;
|
|
|
+ private Dictionary<string, HttpPostedFile> files;
|
|
|
|
|
|
- class WebROCollection : QueryParamCollection
|
|
|
+ private class WebROCollection : QueryParamCollection
|
|
|
{
|
|
|
public override string ToString()
|
|
|
{
|
|
@@ -317,16 +317,16 @@ namespace Jellyfin.SocketSharp
|
|
|
|
|
|
public sealed class HttpPostedFile
|
|
|
{
|
|
|
- string name;
|
|
|
- string content_type;
|
|
|
- Stream stream;
|
|
|
+ private string name;
|
|
|
+ private string content_type;
|
|
|
+ private Stream stream;
|
|
|
|
|
|
- class ReadSubStream : Stream
|
|
|
+ private class ReadSubStream : Stream
|
|
|
{
|
|
|
- Stream s;
|
|
|
- long offset;
|
|
|
- long end;
|
|
|
- long position;
|
|
|
+ private Stream s;
|
|
|
+ private long offset;
|
|
|
+ private long end;
|
|
|
+ private long position;
|
|
|
|
|
|
public ReadSubStream(Stream s, long offset, long length)
|
|
|
{
|
|
@@ -429,7 +429,7 @@ namespace Jellyfin.SocketSharp
|
|
|
real = position + d;
|
|
|
break;
|
|
|
default:
|
|
|
- throw new ArgumentException();
|
|
|
+ throw new ArgumentException(nameof(origin));
|
|
|
}
|
|
|
|
|
|
long virt = real - offset;
|
|
@@ -491,7 +491,7 @@ namespace Jellyfin.SocketSharp
|
|
|
public Stream InputStream => stream;
|
|
|
}
|
|
|
|
|
|
- class Helpers
|
|
|
+ private class Helpers
|
|
|
{
|
|
|
public static readonly CultureInfo InvariantCulture = CultureInfo.InvariantCulture;
|
|
|
}
|
|
@@ -614,7 +614,7 @@ namespace Jellyfin.SocketSharp
|
|
|
|
|
|
private static string GetContentDispositionAttribute(string l, string name)
|
|
|
{
|
|
|
- int idx = l.IndexOf(name + "=\"");
|
|
|
+ int idx = l.IndexOf(name + "=\"", StringComparison.Ordinal);
|
|
|
if (idx < 0)
|
|
|
{
|
|
|
return null;
|
|
@@ -637,7 +637,7 @@ namespace Jellyfin.SocketSharp
|
|
|
|
|
|
private string GetContentDispositionAttributeWithEncoding(string l, string name)
|
|
|
{
|
|
|
- int idx = l.IndexOf(name + "=\"");
|
|
|
+ int idx = l.IndexOf(name + "=\"", StringComparison.Ordinal);
|
|
|
if (idx < 0)
|
|
|
{
|
|
|
return null;
|
|
@@ -669,11 +669,12 @@ namespace Jellyfin.SocketSharp
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- string line = ReadLine();
|
|
|
- while (line == string.Empty)
|
|
|
+ string line;
|
|
|
+ do
|
|
|
{
|
|
|
line = ReadLine();
|
|
|
}
|
|
|
+ while (line.Length == 0);
|
|
|
|
|
|
if (line[0] != '-' || line[1] != '-')
|
|
|
{
|