diff --git a/Cargo.toml b/Cargo.toml index bd27814dae..95d473664e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,11 +58,11 @@ extra = { git = "https://gitlab.redox-os.org/redox-os/libextra.git" } orbclient = "0.3.47" plain = "0.2.3" redox_liner = "0.5.2" -libredox = { version = "0.1.12", features = ["mkns"] } +libredox = { path = "../libredox", features = ["mkns"] } redox_termios = "0.1.3" redox_event = "0.4.3" -redox-scheme = "0.9.0" -redox_syscall = "0.7.0" +redox-scheme = { path = "../redox-scheme" } +redox_syscall = { path = "../syscall" } redox_users = "0.4.6" termion = "4" libc = "0.2" @@ -73,5 +73,10 @@ ioslice = "0.6" [target.'cfg(target_os = "redox")'.dependencies] redox-rt = { git = "https://gitlab.redox-os.org/redox-os/relibc", default-features = false } +[patch.crates-io] +redox_syscall = { path = "../syscall" } +libredox = { path = "../libredox" } +redox-scheme = { path = "../redox-scheme" } + [profile.release] lto = true diff --git a/src/bin/sudo.rs b/src/bin/sudo.rs index 9959b14117..a77761cded 100644 --- a/src/bin/sudo.rs +++ b/src/bin/sudo.rs @@ -7,7 +7,7 @@ use std::process::{Command, exit}; use extra::option::OptionalExt; use libredox::flag::O_CLOEXEC; -use redox_rt::protocol::ProcCall; +use libredox::protocol::ProcCall; use redox_rt::sys::proc_call; use redox_scheme::scheme::{SchemeSync, register_sync_scheme}; use redox_scheme::{ @@ -371,6 +371,7 @@ fn daemon_main() -> ! { next_fd: 1, handles: HashMap::new(), }; + let mut scheme_state = redox_scheme::scheme::SchemeState::new(); register_sync_scheme(&socket, "sudo", &mut scheme) .expect("failed to register sudo scheme to namespace"); @@ -384,7 +385,7 @@ fn daemon_main() -> ! { }; let response = match req.kind() { - RequestKind::Call(call) => call.handle_sync(&mut scheme), + RequestKind::Call(call) => call.handle_sync(&mut scheme, &mut scheme_state), RequestKind::SendFd(req) => Response::new(scheme.on_sendfd(&socket, &req), req), RequestKind::OnClose { id } => { scheme.on_close(id);