undercroft

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 70a159f0f254b25e8fa315b28e5e8c39bb70ce34
parent 32ce1c6821390d7290de88968893a7393f2f207d
Author: Daniel Barlow <dan@telent.net>
Date:   Sun, 26 Apr 2026 21:12:47 +0100

add --bind option to set listening socket address

Diffstat:
Msrc/main.rs | 13++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -41,6 +41,8 @@ struct Cli { key: String, #[arg(long)] port: Option<u16>, + #[arg(long)] + bind: Option<String>, secrets: String } @@ -65,8 +67,14 @@ async fn send_it(secrets_path : String) -> (StatusCode, String) { async fn main() { let cli = Cli::parse(); println!("secrets path = {:}", cli.secrets); - let port = cli.port.unwrap_or(3000); - println!("port = {:?}", port); + + let addr : SocketAddr = match cli.bind { + Some(s) => s.parse().expect("can't parse bind address"), + None => { + let port = cli.port.unwrap_or(3000); + SocketAddr::from(([127, 0, 0, 1], port)) + } + }; let private_key = PrivateKeyDer::from_pem_file(cli.key).unwrap(); @@ -99,7 +107,6 @@ async fn main() { let tls_acceptor = TlsAcceptor::from(Arc::new(tls_config)); - let addr = SocketAddr::from(([127, 0, 0, 1], port)); let tcp_listener = TcpListener::bind(addr).await.unwrap(); println!("listening on {}", addr);