mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-09 08:14:42 +00:00
Move register_decrypt_worker_session out of promote_connection into the executor's PromoteToActive handler, gated on a promoted or cross-connection-won result. Every live promote now flows through that one executor path, so registration still fires exactly once at the same synchronous point; the direct test callers of promote_connection spawn no worker pool, so the call was already a no-op for them. Add the cross-connection loser-link teardown (close the losing transport, remove its link, re-point addr_to_link at the winner) to the executor as a guarded follow-up. It is unreachable on the current driven establish paths, which only promote net-new peers, and asserts so, but keeps the executor complete for when that case is driven. Remove the now-dead drive_promote_to_active and ConnAction::PromoteToActive.