ReceiveRequestBody();\r
SendRequestBody();\r
ReceiveResponse();\r
+ if (_session.Response.StatusCode == null)\r
+ return;\r
SendResponse();\r
Close();\r
AfterSessionComplete?.Invoke(_session);\r
}\r
catch (Exception e)\r
{\r
- File.AppendAllText("debug.log", $"[{DateTime.Now.ToString("g")}] " + e + "\r\n");\r
+ File.AppendAllText("debug.log", $"[{DateTime.Now:g}] " + e + "\r\n");\r
}\r
finally\r
{\r
\r
private void ReceiveResponse()\r
{\r
- _session.Response.StatusLine = _serverStream.ReadLine();\r
+ var statusLine = _serverStream.ReadLine();\r
+ if (statusLine == "")\r
+ return;\r
+ _session.Response.StatusLine = statusLine;\r
_session.Response.Headers = _serverStream.ReadHeaders();\r
if (HasBody)\r
_session.Response.ReadBody(_serverStream);\r
\r
public string Headers\r
{\r
- get { return _headers; }\r
+ get => _headers;\r
set\r
{\r
_headers = value;\r
var s = GetField("content-length");\r
if (s != null)\r
{\r
- int len;\r
- ContentLength = int.TryParse(s, out len) ? len : -1;\r
+ ContentLength = int.TryParse(s, out var len) ? len : -1;\r
}\r
TransferEncoding = GetField("transfer-encoding")?.ToLower(CultureInfo.InvariantCulture);\r
ContentType = GetField("content-type");\r
\r
public string RequestLine\r
{\r
- get { return _requestLine; }\r
+ get => _requestLine;\r
set\r
{\r
_requestLine = value;\r
\r
public string StatusLine\r
{\r
- get { return _statusLine; }\r
+ get => _statusLine;\r
set\r
{\r
_statusLine = value;\r
break;\r
var ext = size.IndexOf(';');\r
size = ext == -1 ? size.Substring(0, size.Length - 2) : size.Substring(0, ext);\r
- int val;\r
- if (!int.TryParse(size, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out val))\r
+ if (!int.TryParse(size, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var val))\r
throw new HttpProxyAbort("Can't parse chunk size: " + size);\r
if (val == 0)\r
break;\r