From 55b5ab54aa630e975ffbe5e30fae0b89b59abdb4 Mon Sep 17 00:00:00 2001 From: Paul Olteanu Date: Thu, 9 Jan 2025 01:22:43 -0500 Subject: [PATCH 1/2] add timeout on tls accept --- iroh-relay/src/server/http_server.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/iroh-relay/src/server/http_server.rs b/iroh-relay/src/server/http_server.rs index 0f367c464d..68b0e5ebfb 100644 --- a/iroh-relay/src/server/http_server.rs +++ b/iroh-relay/src/server/http_server.rs @@ -644,7 +644,11 @@ impl RelayService { }, TlsAcceptor::Manual(a) => { debug!("TLS[manual]: accept"); - let tls_stream = a.accept(stream).await.context("TLS[manual] accept")?; + let tls_stream = tokio::time::timeout(Duration::from_secs(30), a.accept(stream)) + .await + .context("TLS[manual] timeout")? + .context("TLS[manual] accept")?; + self.serve_connection(MaybeTlsStream::Tls(tls_stream)) .await .context("TLS[manual] serve connection")?; From 5ab51039786cbe1b46dec7a6cfc1f061934b3f22 Mon Sep 17 00:00:00 2001 From: Paul Olteanu Date: Wed, 15 Jan 2025 23:39:34 -0500 Subject: [PATCH 2/2] fix circular await --- iroh-relay/src/server/client.rs | 4 +--- iroh-relay/src/server/clients.rs | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/iroh-relay/src/server/client.rs b/iroh-relay/src/server/client.rs index bc9a4b4849..152d8883d6 100644 --- a/iroh-relay/src/server/client.rs +++ b/iroh-relay/src/server/client.rs @@ -221,9 +221,7 @@ impl Actor { } } - self.clients - .unregister(self.connection_id, self.node_id) - .await; + self.clients.unregister(self.connection_id, self.node_id); } async fn run_inner(&mut self, done: CancellationToken) -> Result<()> { diff --git a/iroh-relay/src/server/clients.rs b/iroh-relay/src/server/clients.rs index 2f60d7b078..f7030a2ff1 100644 --- a/iroh-relay/src/server/clients.rs +++ b/iroh-relay/src/server/clients.rs @@ -71,7 +71,7 @@ impl Clients { /// peer is gone from the network. /// /// Must be passed a matching connection_id. - pub(super) async fn unregister(&self, connection_id: u64, node_id: NodeId) { + pub(super) fn unregister(&self, connection_id: u64, node_id: NodeId) { trace!( node_id = node_id.fmt_short(), connection_id, @@ -102,7 +102,6 @@ impl Clients { } } } - client.shutdown().await; } }