-Decoupled accept loop from handshake: TCP accept is now immediate, each handshake spawned as an independent tokio task. Concurrent handshakes bounded by `tokio::sync::Semaphore` (`max_handshaking`, default 64). Per-IP connection cap (`max_connections_per_ip`, default 3) enforced via shared `Arc<Mutex<HashMap<IpAddr, usize>>>` between accept loop and coordinator — count incremented before handshake spawn, decremented on handshake failure, coordinator rejection, or peer disconnect. Existing 10s handshake timeout still enforced per-connection. Rate limiting deferred as firewall territory. Commit: TBD
0 commit comments