diff --git a/src/server/command_socket.rs b/src/server/command_socket.rs index b69866dc..814d160b 100644 --- a/src/server/command_socket.rs +++ b/src/server/command_socket.rs @@ -13,15 +13,13 @@ use serde_json::Value; use std::sync::Arc; /// Listens on a Unix Socket to handle simple command asynchronously -pub fn create_control_socket(path: P, auto_remove: bool, f: F) -> Result, Error> +pub fn create_control_socket(path: P, f: F) -> Result, Error> where P: Into, F: Send + Sync +'static + Fn(Value) -> Result, { let path: PathBuf = path.into(); let path1: PathBuf = path.clone(); - if auto_remove { let _ = std::fs::remove_file(&path); } - let socket = UnixListener::bind(&path)?; let f = Arc::new(f); @@ -64,10 +62,7 @@ pub fn create_control_socket(path: P, auto_remove: bool, f: F) -> Result bool { pub fn create_task_control_socket() -> Result<(), Error> { let socketname = format!( - "{}/proxmox-task-control-{}.sock", PROXMOX_BACKUP_VAR_RUN_DIR, *MY_PID); + "\0{}/proxmox-task-control-{}.sock", PROXMOX_BACKUP_VAR_RUN_DIR, *MY_PID); - let control_future = super::create_control_socket(socketname, true, |param| { + let control_future = super::create_control_socket(socketname, |param| { let param = param.as_object() .ok_or(format_err!("unable to parse parameters (expected json object)"))?; if param.keys().count() != 2 { bail!("worng number of parameters"); }