Dispose socket on Accept() error.

This commit is contained in:
Cesar Blum Silveira 2015-12-14 19:42:00 -08:00
parent ada61f8181
commit 67ed24896a
4 changed files with 16 additions and 14 deletions

View File

@ -37,19 +37,19 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
protected override void OnConnection(UvStreamHandle listenSocket, int status) protected override void OnConnection(UvStreamHandle listenSocket, int status)
{ {
var acceptSocket = new UvPipeHandle(Log); var acceptSocket = new UvPipeHandle(Log);
acceptSocket.Init(Thread.Loop, false);
try try
{ {
acceptSocket.Init(Thread.Loop, false);
listenSocket.Accept(acceptSocket); listenSocket.Accept(acceptSocket);
DispatchConnection(acceptSocket);
} }
catch (UvException ex) catch (UvException ex)
{ {
Log.LogError("PipeListener.OnConnection", ex); Log.LogError("PipeListener.OnConnection", ex);
acceptSocket.Dispose();
return; return;
} }
DispatchConnection(acceptSocket);
} }
} }
} }

View File

@ -37,19 +37,19 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
protected override void OnConnection(UvStreamHandle listenSocket, int status) protected override void OnConnection(UvStreamHandle listenSocket, int status)
{ {
var acceptSocket = new UvPipeHandle(Log); var acceptSocket = new UvPipeHandle(Log);
acceptSocket.Init(Thread.Loop, false);
try try
{ {
acceptSocket.Init(Thread.Loop, false);
listenSocket.Accept(acceptSocket); listenSocket.Accept(acceptSocket);
DispatchConnection(acceptSocket);
} }
catch (UvException ex) catch (UvException ex)
{ {
Log.LogError("ListenerPrimary.OnConnection", ex); Log.LogError("ListenerPrimary.OnConnection", ex);
acceptSocket.Dispose();
return; return;
} }
DispatchConnection(acceptSocket);
} }
} }
} }

View File

@ -37,20 +37,21 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
protected override void OnConnection(UvStreamHandle listenSocket, int status) protected override void OnConnection(UvStreamHandle listenSocket, int status)
{ {
var acceptSocket = new UvTcpHandle(Log); var acceptSocket = new UvTcpHandle(Log);
acceptSocket.Init(Thread.Loop, Thread.QueueCloseHandle);
acceptSocket.NoDelay(NoDelay);
try try
{ {
acceptSocket.Init(Thread.Loop, Thread.QueueCloseHandle);
acceptSocket.NoDelay(NoDelay);
listenSocket.Accept(acceptSocket); listenSocket.Accept(acceptSocket);
DispatchConnection(acceptSocket);
} }
catch (UvException ex) catch (UvException ex)
{ {
Log.LogError("TcpListener.OnConnection", ex); Log.LogError("TcpListener.OnConnection", ex);
acceptSocket.Dispose();
return; return;
} }
DispatchConnection(acceptSocket);
} }
} }
} }

View File

@ -39,20 +39,21 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
protected override void OnConnection(UvStreamHandle listenSocket, int status) protected override void OnConnection(UvStreamHandle listenSocket, int status)
{ {
var acceptSocket = new UvTcpHandle(Log); var acceptSocket = new UvTcpHandle(Log);
acceptSocket.Init(Thread.Loop, Thread.QueueCloseHandle);
acceptSocket.NoDelay(NoDelay);
try try
{ {
acceptSocket.Init(Thread.Loop, Thread.QueueCloseHandle);
acceptSocket.NoDelay(NoDelay);
listenSocket.Accept(acceptSocket); listenSocket.Accept(acceptSocket);
DispatchConnection(acceptSocket);
} }
catch (UvException ex) catch (UvException ex)
{ {
Log.LogError("TcpListenerPrimary.OnConnection", ex); Log.LogError("TcpListenerPrimary.OnConnection", ex);
acceptSocket.Dispose();
return; return;
} }
DispatchConnection(acceptSocket);
} }
} }
} }