From 4d3e8bbcaf7127468f6190228b0e3bee40552749 Mon Sep 17 00:00:00 2001 From: nym21 Date: Wed, 1 Jul 2026 17:23:02 +0200 Subject: [PATCH] website: auto port selection --- crates/brk_website/examples/website.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/crates/brk_website/examples/website.rs b/crates/brk_website/examples/website.rs index 4c1d4661c..c4b1a343b 100644 --- a/crates/brk_website/examples/website.rs +++ b/crates/brk_website/examples/website.rs @@ -79,8 +79,25 @@ async fn main() -> std::io::Result<()> { )) .layer(CorsLayer::permissive()); - let port = 3111; - let listener = TcpListener::bind(format!("0.0.0.0:{port}")).await?; + let mut last_error = None; + let (port, listener) = { + let mut bound = None; + + for port in [3110, 3111] { + match TcpListener::bind(("0.0.0.0", port)).await { + Ok(listener) => { + bound = Some((port, listener)); + break; + } + Err(error) => { + info!(port, ?error, "website server port unavailable"); + last_error = Some(error); + } + } + } + + bound.ok_or_else(|| last_error.expect("at least one port was attempted"))? + }; info!("website server listening on port {port}");