feat(relay): add room admission state
Add a tested relay room layer before introducing QUIC socket handling. The relay now has a focused place to enforce room membership rules instead of mixing those rules into the future networking loop. RoomRegistry accepts validated endpoint hellos, assigns room and peer IDs, returns server welcome data, limits clients per room, permits only one gateway, rejects duplicate client MACs, and keeps the room TAP MTU stable once the first peer joins. A later peer must support the existing room MTU rather than silently shrinking it after an earlier client may already have configured its TAP adapter. The networking pieces still need to call this layer from the reliable control stream and use the resulting peer metadata for datagram forwarding. Test Plan: - cargo fmt --check - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings Refs: PLAN.md relay responsibilities and MAC identity
This commit is contained in:
@@ -4,3 +4,5 @@ version.workspace = true
|
||||
edition.workspace = true
|
||||
|
||||
[dependencies]
|
||||
lanparty-ctrl = { path = "../lanparty-ctrl" }
|
||||
lanparty-proto = { path = "../lanparty-proto" }
|
||||
|
||||
Reference in New Issue
Block a user