mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-02 04:46:15 +00:00
At the inbound peer cap the XX FMP handshake had two cap checks: an early gate in handle_msg3 and the late promote_connection check. On XX the peer's identity is not known until the third handshake message, by which point all three messages have already crossed the wire, so the early gate saved no wire bytes and governed exactly the same net-new-peer set as the late check (known and pending-outbound peers return earlier via the cross-connection paths). Remove the early gate and rely on the promotion check, and log the resulting MaxPeersExceeded rejection at debug instead of warn so a cap'd node under sustained inbound pressure does not emit WARN spam for expected policy rejections. Re-enable the two previously-ignored inbound-cap unit tests, rewritten to drive a full XX three-message handshake and assert the path-agnostic invariant (no promotion over cap, peer count unchanged, no connection/link/index leak) plus the known-peer reconnect bypass. Update the admission-cap integration suite's enforcement-event discriminator to match: drop the removed early-gate string and count the new debug-level promotion-cap rejection.