static void OnConnectionCallback(IntPtr handle, int status) { var server = HandleContext.GetTarget <ServerStream>(handle); if (server == null) { return; } StreamHandle client = null; Exception error = null; try { if (status < 0) { error = NativeMethods.CreateError((uv_err_code)status); } else { client = server.NewStream(); } server.connectionHandler(client, error); } catch { client?.Dispose(); throw; } }
static void OnConnectionCallback(IntPtr handle, int status) { var server = HandleContext.GetTarget <ServerStream>(handle); if (server == null) { return; } StreamHandle client = null; Exception error = null; try { if (status < 0) { error = NativeMethods.CreateError((uv_err_code)status); } else { client = server.NewStream(); if (client == null) { throw new InvalidOperationException( $"{server.HandleType} {server.InternalHandle} failed to create new client stream."); } NativeMethods.StreamAccept(server.InternalHandle, client.InternalHandle); client.ReadStart(); Log.DebugFormat("{0} {1} client {2} accepted", server.HandleType, handle, client.InternalHandle); } server.connectionHandler(client, error); } catch { client?.Dispose(); throw; } }