OSDN Git Service

Status-Lineが空のときに例外を出さない
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / HttpProxy.cs
index 1b6dc66..95d81af 100644 (file)
@@ -119,13 +119,15 @@ namespace KancolleSniffer
                     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
@@ -162,7 +164,10 @@ namespace KancolleSniffer
 \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
@@ -297,7 +302,7 @@ namespace KancolleSniffer
 \r
             public string Headers\r
             {\r
-                get { return _headers; }\r
+                get => _headers;\r
                 set\r
                 {\r
                     _headers = value;\r
@@ -335,8 +340,7 @@ namespace KancolleSniffer
                 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
@@ -419,7 +423,7 @@ namespace KancolleSniffer
 \r
             public string RequestLine\r
             {\r
-                get { return _requestLine; }\r
+                get => _requestLine;\r
                 set\r
                 {\r
                     _requestLine = value;\r
@@ -450,7 +454,7 @@ namespace KancolleSniffer
 \r
             public string StatusLine\r
             {\r
-                get { return _statusLine; }\r
+                get => _statusLine;\r
                 set\r
                 {\r
                     _statusLine = value;\r
@@ -535,8 +539,7 @@ namespace KancolleSniffer
                         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