Better error handling for invalid bind address, also return exit code failure on failure

This commit is contained in:
p11 2025-04-16 21:42:08 +02:00
parent 700406992a
commit 09f203e99b

View File

@ -5,6 +5,7 @@ use std::{
io::{BufReader, Error, ErrorKind, Result, prelude::*}, io::{BufReader, Error, ErrorKind, Result, prelude::*},
net::{TcpListener, TcpStream}, net::{TcpListener, TcpStream},
path::{Path, PathBuf}, path::{Path, PathBuf},
process::ExitCode,
sync::{ sync::{
Arc, Mutex, Arc, Mutex,
atomic::{AtomicUsize, Ordering}, atomic::{AtomicUsize, Ordering},
@ -32,10 +33,10 @@ use vn_settings::{
mod dialog; mod dialog;
fn main() { fn main() -> ExitCode {
let Ok(path) = env::current_dir() else { let Ok(path) = env::current_dir() else {
eprintln!("Current directory does not exist!"); eprintln!("Current directory does not exist!");
return; return ExitCode::FAILURE;
}; };
let mut args = env::args(); let mut args = env::args();
@ -44,6 +45,7 @@ fn main() {
let password = args.next(); let password = args.next();
let partial_password = args.next(); let partial_password = args.next();
start_server(path, &address, password, partial_password); start_server(path, &address, password, partial_password);
ExitCode::FAILURE
} }
fn start_server( fn start_server(
@ -52,7 +54,10 @@ fn start_server(
password: Option<String>, password: Option<String>,
partial_password: Option<String>, partial_password: Option<String>,
) { ) {
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!"); eprintln!("Strated server!");
let context: Arc<Mutex<Context>> = Arc::default(); let context: Arc<Mutex<Context>> = Arc::default();