feat(relay): forward live Ethernet datagrams
The relay now keeps active peer sessions alongside room admission state. After a successful hello/welcome handshake, the connection enters a datagram loop and stays registered until the QUIC connection closes. Incoming datagrams are only considered for forwarding when their overlay room id, peer id, and Ethernet frame type match the peer assigned by the relay. The relay then reuses the existing room forwarding decision logic, clones the matching live target sessions, and sends a relay-stamped Ethernet datagram to each connected target that can carry the frame. This keeps spoofable wire metadata out of the trust boundary: clients can put whatever they want in an overlay header, but the relay forwards using the room and peer identity established during the control handshake. Test Plan: - cargo fmt --check - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings Refs: PLAN.md QUIC DATAGRAM Ethernet forwarding path
This commit is contained in:
@@ -5,6 +5,7 @@ edition.workspace = true
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
bytes.workspace = true
|
||||
clap.workspace = true
|
||||
lanparty-ctrl = { path = "../lanparty-ctrl" }
|
||||
lanparty-obs = { path = "../lanparty-obs" }
|
||||
|
||||
Reference in New Issue
Block a user