git.delta.rocks / remowt / refs/commits / 023a07f7fe9b

difftreelog

refactor drop NixDaemon::connect_daemon

nxkzssyuYaroslav Bolyukin3 days agoparent: #6d9cf16.patch.diff
in: trunk

4 files changed

modifiedCargo.lockdiffbeforeafterboth
before · Cargo.lock
349 packageslockfile v4
after · Cargo.lock
349 packageslockfile v4
modifiedCargo.tomldiffbeforeafterboth
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,18 +3,18 @@
 resolver = "2"
 
 [workspace.package]
-version = "0.1.6"
+version = "0.1.7"
 license = "MIT"
 edition = "2021"
 repository = "https://git.delta.rocks/r/remowt"
 
 [workspace.dependencies]
-remowt-client = { version = "0.1.6", path = "crates/remowt-client" }
-remowt-polkit-shared = { version = "0.1.6", path = "crates/polkit-shared" }
-remowt-link-shared = { version = "0.1.6", path = "crates/remowt-link-shared" }
-remowt-plugin = { version = "0.1.6", path = "crates/remowt-plugin" }
-remowt-ui-prompt = { version = "0.1.6", path = "crates/remowt-ui-prompt" }
-remowt-endpoints = { version = "0.1.6", path = "crates/remowt-endpoints" }
+remowt-client = { version = "0.1.7", path = "crates/remowt-client" }
+remowt-polkit-shared = { version = "0.1.7", path = "crates/polkit-shared" }
+remowt-link-shared = { version = "0.1.7", path = "crates/remowt-link-shared" }
+remowt-plugin = { version = "0.1.7", path = "crates/remowt-plugin" }
+remowt-ui-prompt = { version = "0.1.7", path = "crates/remowt-ui-prompt" }
+remowt-endpoints = { version = "0.1.7", path = "crates/remowt-endpoints" }
 
 bifrostlink = "0.2.0"
 bifrostlink-macros = "0.2.0"
modifiedcrates/remowt-client/src/lib.rsdiffbeforeafterboth
--- a/crates/remowt-client/src/lib.rs
+++ b/crates/remowt-client/src/lib.rs
@@ -427,7 +427,10 @@
 				};
 
 				let (tool, flags) = self.detect_escalation().await?;
-				let mut args: Vec<String> = flags.iter().map(|f| (*f).to_owned()).collect();
+				let mut args: Vec<String> = Vec::new();
+				args.push("-w".to_owned());
+				args.push(tool.to_owned());
+				args.extend(flags.iter().copied().map(str::to_owned));
 				args.push(agent_path);
 				args.push("real-agent".to_owned());
 				args.push("--privileged".to_owned());
@@ -437,7 +440,7 @@
 
 				let child = self
 					.spawn(SpawnOptions {
-						program: tool.to_owned(),
+						program: "setsid".to_owned(),
 						args,
 						stdin: StdioMode::Pipe,
 						stdout: StdioMode::Pipe,
modifiedcrates/remowt-endpoints/src/nix_daemon.rsdiffbeforeafterboth
--- a/crates/remowt-endpoints/src/nix_daemon.rs
+++ b/crates/remowt-endpoints/src/nix_daemon.rs
@@ -6,8 +6,6 @@
 use std::result::Result;
 use tokio::process::Command;
 
-pub const NIX_DAEMON_SOCKET: &str = "/nix/var/nix/daemon-socket/socket";
-
 pub struct NixDaemon;
 
 #[derive(Serialize, Deserialize, Debug, thiserror::Error)]
@@ -20,22 +18,6 @@
 
 #[endpoints(ns = 4)]
 impl NixDaemon {
-	#[endpoints(id = 1)]
-	async fn connect_daemon(&self, socket: String) -> Result<(), Error> {
-		let mut daemon = tokio::net::UnixStream::connect(NIX_DAEMON_SOCKET)
-			.await
-			.map_err(|e| Error::DaemonUnavailable(e.to_string()))?;
-		let mut tunnel = tokio::net::UnixStream::connect(&socket)
-			.await
-			.map_err(|e| Error::Tunnel(e.to_string()))?;
-		tokio::spawn(async move {
-			if let Err(e) = tokio::io::copy_bidirectional(&mut daemon, &mut tunnel).await {
-				tracing::debug!("nix daemon tunnel ended: {e}");
-			}
-		});
-		Ok(())
-	}
-
 	#[endpoints(id = 2)]
 	async fn serve_store(&self, store: String, socket: String) -> Result<(), Error> {
 		let mut child = Command::new("nix-daemon")