Commit Graph

11 Commits

Author SHA1 Message Date
Joseph Doherty 6fb7f43335 feat(mqtt): add MQTT listener, client creation, and shutdown wiring
Wire up the MQTT server-side orchestration layer (Task 1 of 7):
- Create NatsServer.Mqtt.cs with StartMqttListener(), CreateMqttClient(), MqttAddr()
- Forward MqttHandler.StartMqtt() to server.StartMqttListener()
- Add _mqttListener to Shutdown() doneExpected counting
- Fix ReadyForConnections to recognize active MQTT listener
- Handle RandomPort (-1) as ephemeral for MQTT listener
- Remove duplicate Mqtt field from ClientConnection.cs (already in ClientConnection.Mqtt.cs)
- Add 2 MQTT boot integration tests (accept + shutdown lifecycle)
2026-03-01 15:35:41 -05:00
Joseph Doherty be1eb3392e feat(boot): add server boot integration tests and fix ValueTask sync blocking
Fix Shutdown()/LameDuckMode() deadlock caused by calling .GetAwaiter().GetResult()
on pending ValueTask from Channel.ReadAsync(). ValueTask does not support synchronous
blocking — must convert via .AsTask() first. Add two integration tests validating the
full Start() → AcceptLoop → client connection → Shutdown lifecycle.
2026-03-01 15:13:48 -05:00
Joseph Doherty 3e9ad16033 feat(batch24): complete leaf nodes implementation and verification 2026-03-01 01:31:57 -05:00
Joseph Doherty 3653345a37 feat(batch26): implement websocket frame/core feature group A 2026-02-28 21:45:05 -05:00
Joseph Doherty 108d06dd57 feat(batch18): implement group-b server core helpers 2026-02-28 19:24:25 -05:00
Joseph Doherty f8d384711d feat(batch18): implement group-a server core helpers 2026-02-28 19:17:53 -05:00
Joseph Doherty f5a13bedff feat(batch10): task4 wire ocsp cache load save and server lifecycle 2026-02-28 13:05:45 -05:00
Joseph Doherty 87b4363eeb feat(batch9): implement f3 nats server ocsp wiring 2026-02-28 12:28:16 -05:00
Joseph Doherty 8849265780 Eliminate PortTracker stub backlog by implementing Raft/file-store/stream/server/client/OCSP stubs and adding coverage. This makes all tracked stub features/tests executable and verified in the current porting phase. 2026-02-27 08:56:26 -05:00
Joseph Doherty a0c9c0094c fix: session B — Go-faithful auth error states, NKey padding, permissions, signal disposal 2026-02-26 17:49:13 -05:00
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