[Modify] Polish it

This commit is contained in:
sta 2020-10-26 21:45:41 +09:00
parent b711565a34
commit 9dcf1cb427

View File

@ -254,6 +254,7 @@ namespace WebSocketSharp.Net
private static void onRead (IAsyncResult asyncResult) private static void onRead (IAsyncResult asyncResult)
{ {
var conn = (HttpConnection) asyncResult.AsyncState; var conn = (HttpConnection) asyncResult.AsyncState;
if (conn._socket == null) if (conn._socket == null)
return; return;
@ -263,29 +264,35 @@ namespace WebSocketSharp.Net
var nread = -1; var nread = -1;
var len = 0; var len = 0;
try { try {
var current = conn._reuses; var current = conn._reuses;
if (!conn._timeoutCanceled[current]) { if (!conn._timeoutCanceled[current]) {
conn._timer.Change (Timeout.Infinite, Timeout.Infinite); conn._timer.Change (Timeout.Infinite, Timeout.Infinite);
conn._timeoutCanceled[current] = true; conn._timeoutCanceled[current] = true;
} }
nread = conn._stream.EndRead (asyncResult); nread = conn._stream.EndRead (asyncResult);
conn._requestBuffer.Write (conn._buffer, 0, nread); conn._requestBuffer.Write (conn._buffer, 0, nread);
len = (int) conn._requestBuffer.Length; len = (int) conn._requestBuffer.Length;
} }
catch (Exception ex) { catch (Exception ex) {
if (conn._requestBuffer != null && conn._requestBuffer.Length > 0) { if (conn._requestBuffer != null && conn._requestBuffer.Length > 0) {
conn.SendError (ex.Message, 400); conn.SendError (ex.Message, 400);
return; return;
} }
conn.close (); conn.close ();
return; return;
} }
if (nread <= 0) { if (nread <= 0) {
conn.close (); conn.close ();
return; return;
} }
@ -295,19 +302,24 @@ namespace WebSocketSharp.Net
if (conn._context.HasError) { if (conn._context.HasError) {
conn.SendError (); conn.SendError ();
return; return;
} }
HttpListener lsnr; HttpListener lsnr;
if (!conn._listener.TrySearchHttpListener (conn._context.Request.Url, out lsnr)) { if (!conn._listener.TrySearchHttpListener (conn._context.Request.Url, out lsnr)) {
conn.SendError (null, 404); conn.SendError (null, 404);
return; return;
} }
if (conn._lastListener != lsnr) { if (conn._lastListener != lsnr) {
conn.removeConnection (); conn.removeConnection ();
if (!lsnr.AddConnection (conn)) { if (!lsnr.AddConnection (conn)) {
conn.close (); conn.close ();
return; return;
} }
@ -315,6 +327,7 @@ namespace WebSocketSharp.Net
} }
conn._context.Listener = lsnr; conn._context.Listener = lsnr;
if (!conn._context.Authenticate ()) if (!conn._context.Authenticate ())
return; return;