diff --git a/crates/lanparty-relay/src/server.rs b/crates/lanparty-relay/src/server.rs index b798d28..d47f643 100644 --- a/crates/lanparty-relay/src/server.rs +++ b/crates/lanparty-relay/src/server.rs @@ -317,6 +317,7 @@ async fn accept_control_handshake( accepted.peer.role() == Role::Client, ) .await?; + close_failed_accepted_handshake(connection); return Err(error); } @@ -332,6 +333,7 @@ async fn accept_control_handshake( accepted.peer.role() == Role::Client, ) .await?; + close_failed_accepted_handshake(connection); return Err(error); } @@ -342,6 +344,10 @@ async fn accept_control_handshake( Ok(Some(accepted)) } +fn close_failed_accepted_handshake(connection: &quinn::Connection) { + connection.close(0_u32.into(), b"relay accepted handshake failed"); +} + const fn accepted_handshake_steps(role: Role) -> &'static [AcceptedHandshakeStep] { match role { Role::Client => CLIENT_HANDSHAKE_STEPS,