From 8159b9b5bd4b90d10999d188b2d45b2547069566 Mon Sep 17 00:00:00 2001 From: Gabor Szabo Date: Wed, 2 Apr 2025 10:40:25 +0300 Subject: [PATCH] Serve on a random port when user provides --port 0 Closes #2599 --- src/cmd/serve.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cmd/serve.rs b/src/cmd/serve.rs index 7b1ccab6eb..c1b931ba08 100644 --- a/src/cmd/serve.rs +++ b/src/cmd/serve.rs @@ -54,7 +54,13 @@ pub fn execute(args: &ArgMatches) -> Result<()> { let hostname = args.get_one::("hostname").unwrap(); let open_browser = args.get_flag("open"); - let address = format!("{hostname}:{port}"); + let mut address = format!("{hostname}:{port}"); + + if port == "0" { + let listener = std::net::TcpListener::bind(address).unwrap(); + let port = listener.local_addr().unwrap().port(); + address = format!("{hostname}:{port}"); + } let update_config = |book: &mut MDBook| { book.config