mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 08:06:27 +08:00
split exception detection on oshttp accept loop for better log
This commit is contained in:
@@ -125,30 +125,57 @@ namespace OSHttpServer
|
||||
|
||||
private async void AcceptLoop()
|
||||
{
|
||||
try
|
||||
while (true)
|
||||
{
|
||||
while (true)
|
||||
if (m_shutdown)
|
||||
{
|
||||
if (m_shutdown)
|
||||
{
|
||||
m_shutdownEvent.Set();
|
||||
break;
|
||||
}
|
||||
m_shutdownEvent?.Set();
|
||||
break;
|
||||
}
|
||||
|
||||
Socket socket = await m_listener.AcceptSocketAsync(m_CancellationSource.Token).ConfigureAwait(false); ;
|
||||
Socket socket = null;
|
||||
try
|
||||
{
|
||||
socket = await m_listener.AcceptSocketAsync(m_CancellationSource.Token).ConfigureAwait(false);
|
||||
if (!socket.Connected)
|
||||
{
|
||||
socket.Dispose();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
m_shutdownEvent?.Set();
|
||||
break;
|
||||
}
|
||||
catch (SocketException snssErr)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, "OSHTTP Accept wait ignoring error: " + snssErr.Message);
|
||||
socket?.Dispose();
|
||||
continue;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, "OSHTTP Accept wait fatal error: " + err.Message);
|
||||
ExceptionThrown?.Invoke(this, err);
|
||||
}
|
||||
|
||||
socket.NoDelay = true;
|
||||
if (m_shutdown)
|
||||
{
|
||||
m_shutdownEvent?.Set();
|
||||
socket?.Dispose();
|
||||
break;
|
||||
}
|
||||
|
||||
socket.NoDelay = true;
|
||||
try
|
||||
{
|
||||
if (!OnAcceptingSocket(socket))
|
||||
{
|
||||
socket.Disconnect(true);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (socket.Connected)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, $"Accepted connection from: {socket.RemoteEndPoint}");
|
||||
@@ -159,17 +186,24 @@ namespace OSHttpServer
|
||||
m_contextFactory.CreateContext(socket);
|
||||
}
|
||||
else
|
||||
socket.Dispose();
|
||||
socket?.Dispose();
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
m_shutdownEvent?.Set();
|
||||
break;
|
||||
}
|
||||
catch (SocketException snssErr)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, "OSHTTP Accept processing ignoring error: " + snssErr.Message);
|
||||
socket?.Dispose();
|
||||
continue;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, "OSHTTP Accept processing fatal error: " + err.Message);
|
||||
ExceptionThrown?.Invoke(this, err);
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
m_shutdownEvent.Set();
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
m_logWriter.Write(this, LogPrio.Debug, err.Message);
|
||||
ExceptionThrown?.Invoke(this, err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user