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
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -308,9 +308,9 @@
 
 [[package]]
 name = "bifrostlink"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "910f9286588d13e3dbdbbc1ad4d292656e704bc93e1f41b8a13b48e3a8e95f39"
+checksum = "2fb01af731c11dd31b23783a83a36a29f644cc1972481f6fa4f4fabc709079eb"
 dependencies = [
  "async-trait",
  "async_fn_traits",
@@ -327,9 +327,9 @@
 
 [[package]]
 name = "bifrostlink-macros"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0ea5c423c3831c523c8ef78debdf6a64e72b21ec92148a44163a4c25c05dfd0"
+checksum = "8c4b7a5fb38b36bd81910c17ebf369f9296e508d92b1277a768a63c8a2254fdb"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -338,9 +338,9 @@
 
 [[package]]
 name = "bifrostlink-ports"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e3a9a01ec1b8bd7d44b47cd0183a1465880e241027d9f5afcb076e11704ec70"
+checksum = "977acfcb8ed3c24ab7c2f76fb3eeebff1533c72708733ce6020f2501980b7cf2"
 dependencies = [
  "bifrostlink",
  "bytes",
@@ -1835,7 +1835,7 @@
 
 [[package]]
 name = "polkit-backend"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "clap",
@@ -2055,7 +2055,7 @@
 
 [[package]]
 name = "remowt-agent"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "bifrostlink",
@@ -2083,7 +2083,7 @@
 
 [[package]]
 name = "remowt-client"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "bifrostlink",
@@ -2106,7 +2106,7 @@
 
 [[package]]
 name = "remowt-endpoints"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "bifrostlink",
@@ -2124,7 +2124,7 @@
 
 [[package]]
 name = "remowt-link-shared"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "bifrostlink",
  "bytes",
@@ -2138,7 +2138,7 @@
 
 [[package]]
 name = "remowt-plugin"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "bifrostlink",
@@ -2152,7 +2152,7 @@
 
 [[package]]
 name = "remowt-polkit-shared"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "nix",
  "serde",
@@ -2161,7 +2161,7 @@
 
 [[package]]
 name = "remowt-ssh"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2189,7 +2189,7 @@
 
 [[package]]
 name = "remowt-ui-prompt"
-version = "0.1.6"
+version = "0.1.7"
 dependencies = [
  "anyhow",
  "bifrostlink",
modifiedCargo.tomldiffbeforeafterboth
before · Cargo.toml
1[workspace]2members = ["cmds/*", "crates/*"]3resolver = "2"45[workspace.package]6version = "0.1.6"7license = "MIT"8edition = "2021"9repository = "https://git.delta.rocks/r/remowt"1011[workspace.dependencies]12remowt-client = { version = "0.1.6", path = "crates/remowt-client" }13remowt-polkit-shared = { version = "0.1.6", path = "crates/polkit-shared" }14remowt-link-shared = { version = "0.1.6", path = "crates/remowt-link-shared" }15remowt-plugin = { version = "0.1.6", path = "crates/remowt-plugin" }16remowt-ui-prompt = { version = "0.1.6", path = "crates/remowt-ui-prompt" }17remowt-endpoints = { version = "0.1.6", path = "crates/remowt-endpoints" }1819bifrostlink = "0.2.0"20bifrostlink-macros = "0.2.0"21bifrostlink-ports = "0.2.0"2223camino = { version = "1.2.2", features = ["serde1"] }24anyhow = "1.0.86"25async-trait = "0.1.81"26bytes = "1.11.0"27clap = "4.5.16"28futures = "0.3.30"29futures-util = "0.3.30"30nix = "0.31.3"31openssh = "0.11.0"32pam-client = "0.5.0"33rand = "0.10.1"34russh = { version = "0.61.2", default-features = false, features = [35	"ring",36	"flate2",37	"rsa",38] }39russh-config = "0.58.0"40serde = "1.0.228"41serde_json = "1.0.149"42tempdir = "0.3.7"43tempfile = "3"44tokio = { version = "1.39.3", features = ["fs"] }45tokio-stream = "0.1.15"46tokio-util = "0.7.11"47tracing = "0.1.40"48tracing-subscriber = "0.3.18"49uuid = "1.10.0"50zbus = "5.16.0"51zbus_polkit = "5.0.0"52thiserror = "2.0.18"5354[profile.release]55panic = "unwind"56opt-level = "z"57lto = true58codegen-units = 159debug = "full"60split-debuginfo = "off"
after · Cargo.toml
1[workspace]2members = ["cmds/*", "crates/*"]3resolver = "2"45[workspace.package]6version = "0.1.7"7license = "MIT"8edition = "2021"9repository = "https://git.delta.rocks/r/remowt"1011[workspace.dependencies]12remowt-client = { version = "0.1.7", path = "crates/remowt-client" }13remowt-polkit-shared = { version = "0.1.7", path = "crates/polkit-shared" }14remowt-link-shared = { version = "0.1.7", path = "crates/remowt-link-shared" }15remowt-plugin = { version = "0.1.7", path = "crates/remowt-plugin" }16remowt-ui-prompt = { version = "0.1.7", path = "crates/remowt-ui-prompt" }17remowt-endpoints = { version = "0.1.7", path = "crates/remowt-endpoints" }1819bifrostlink = "0.2.0"20bifrostlink-macros = "0.2.0"21bifrostlink-ports = "0.2.0"2223camino = { version = "1.2.2", features = ["serde1"] }24anyhow = "1.0.86"25async-trait = "0.1.81"26bytes = "1.11.0"27clap = "4.5.16"28futures = "0.3.30"29futures-util = "0.3.30"30nix = "0.31.3"31openssh = "0.11.0"32pam-client = "0.5.0"33rand = "0.10.1"34russh = { version = "0.61.2", default-features = false, features = [35	"ring",36	"flate2",37	"rsa",38] }39russh-config = "0.58.0"40serde = "1.0.228"41serde_json = "1.0.149"42tempdir = "0.3.7"43tempfile = "3"44tokio = { version = "1.39.3", features = ["fs"] }45tokio-stream = "0.1.15"46tokio-util = "0.7.11"47tracing = "0.1.40"48tracing-subscriber = "0.3.18"49uuid = "1.10.0"50zbus = "5.16.0"51zbus_polkit = "5.0.0"52thiserror = "2.0.18"5354[profile.release]55panic = "unwind"56opt-level = "z"57lto = true58codegen-units = 159debug = "full"60split-debuginfo = "off"
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")