From 09f203e99be4ec6d1145b8bd92370509809b6ac5 Mon Sep 17 00:00:00 2001 From: p11 Date: Wed, 16 Apr 2025 21:42:08 +0200 Subject: [PATCH] Better error handling for invalid bind address, also return exit code failure on failure --- src/main.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index d3aaa4a..ad1b657 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ use std::{ io::{BufReader, Error, ErrorKind, Result, prelude::*}, net::{TcpListener, TcpStream}, path::{Path, PathBuf}, + process::ExitCode, sync::{ Arc, Mutex, atomic::{AtomicUsize, Ordering}, @@ -32,10 +33,10 @@ use vn_settings::{ mod dialog; -fn main() { +fn main() -> ExitCode { let Ok(path) = env::current_dir() else { eprintln!("Current directory does not exist!"); - return; + return ExitCode::FAILURE; }; let mut args = env::args(); @@ -44,6 +45,7 @@ fn main() { let password = args.next(); let partial_password = args.next(); start_server(path, &address, password, partial_password); + ExitCode::FAILURE } fn start_server( @@ -52,7 +54,10 @@ fn start_server( password: Option, partial_password: Option, ) { - let listener = TcpListener::bind(address).expect("Invalid bind address!"); + let Ok(listener) = TcpListener::bind(address) else { + eprintln!("Invalid bind address {address:?}!"); + return; + }; eprintln!("Strated server!"); let context: Arc> = Arc::default();