From 4c489c4dd4ffaf74d718035f73fa3c0f762d1187 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 9 May 2019 22:04:15 +0200 Subject: Clean up socket on termination. --- src/main.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index db6bb73..36c5cf9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,6 +21,7 @@ use std::error::Error; use std::fs::{ File, remove_file }; use std::io::{ BufRead, BufReader, Write }; use std::os::unix::net::{ UnixListener, UnixStream }; +use std::process::exit; use std::result::Result; use std::string::ToString; use std::sync::Arc; @@ -28,6 +29,13 @@ use std::thread; use std::time::SystemTime; fn main() { + // Set signal handler to clean up on termination. + ctrlc::set_handler(move || { + // We don't care about errors in remove_file. + remove_file("/tmp/phisher").unwrap_or(()); + exit(0); + }).expect("Couldn't set signal handler!"); + let args = clap_app!(app => (name: crate_name!()) (version: crate_version!()) @@ -78,7 +86,7 @@ fn run_server(tank: Arc) -> Result<(), Box> { } } - Ok(remove_file("/tmp/phisher")?) + Ok(()) } // Handle a connected client. -- cgit v1.2.3