From 6a1c59f91a5e515a3284052c71539385cffe71b1 Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Fri, 3 Jul 2026 13:21:40 +0300 Subject: [PATCH] fix socket permissions and ipc cleanup bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - daemon: chmod socket to 0770 after bind so group devs can connect - ipc: remove stale-socket deletion — it was deleting the socket when connect failed due to permissions, breaking the running daemon --- src/daemon.rs | 1 + src/ipc.rs | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/daemon.rs b/src/daemon.rs index 0c04597..2cad9ae 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -79,6 +79,7 @@ pub fn run(config_path: String) { return; } }; + let _ = fs::set_permissions(&sock_path, fs::Permissions::from_mode(0o770)); listener.set_nonblocking(true).ok(); let mut procs: HashMap = HashMap::new(); diff --git a/src/ipc.rs b/src/ipc.rs index cac9674..30ad592 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -4,12 +4,6 @@ use std::os::unix::net::UnixStream; pub fn send_cmd(cmd: &str) -> Result, String> { let path = crate::state::socket_path(); - if path.exists() { - if UnixStream::connect(&path).is_err() { - let _ = std::fs::remove_file(&path); - } - } - let mut stream = UnixStream::connect(&path).map_err(|e| format!("daemon not running: {}", e))?; writeln!(stream, "{}", cmd).map_err(|e| format!("write: {}", e))?; stream.flush().map_err(|e| format!("flush: {}", e))?;