Joseph Doherty
|
06779a1f77
|
feat: port session 10 — Server Core Runtime, Accept Loops & Listeners
Ports server/server.go lines 2577–4782 (~1,881 Go LOC), implementing ~97
features (IDs 3051–3147) across three new partial-class files.
New files:
- NatsServer.Lifecycle.cs: Shutdown, WaitForShutdown, RemoveClient,
SendLDMToClients, LameDuckMode, LDMClientByID, rate-limit logging,
DisconnectClientByID, SendAsyncInfoToClients
- NatsServer.Listeners.cs: AcceptLoop, GetServerListener, InProcessConn,
AcceptConnections, GenerateInfoJson, CopyInfo, CreateClient/Ex/InProcess,
StartMonitoring (HTTP/HTTPS), AddConnectURLs/RemoveConnectURLs,
TlsVersion/TlsVersionFromString, GetClientConnectURLs, ResolveHostPorts,
PortsInfo/PortFile/LogPorts, ReadyForListeners, GetRandomIP, AcceptError
- Internal/WaitGroup.cs: Go-style WaitGroup using TaskCompletionSource
Modified:
- Auth/AuthTypes.cs: Account now implements INatsAccount (stub)
- NatsServerTypes.cs: ServerInfo.ShallowClone(), removed duplicate RefCountedUrlSet
- NatsServer.cs: _info promoted to internal for test access
- Properties/AssemblyInfo.cs: InternalsVisibleTo(DynamicProxyGenAssembly2)
- ServerTests.cs: 20 new session-10 unit tests (GenerateInfoJson, TlsVersion,
CopyInfo, GetRandomIP — Test IDs 2895, 2906)
All 565 unit tests + 1 integration test pass.
|
2026-02-26 15:08:23 -05:00 |
|