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::*},
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<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!");
let context: Arc<Mutex<Context>> = Arc::default();