diff --git a/Cargo.lock b/Cargo.lock index 53f3894279..a9adeaa82e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -93,11 +93,6 @@ dependencies = [ "redox-initfs", ] -[[package]] -name = "arg_parser" -version = "0.1.0" -source = "git+https://gitlab.redox-os.org/redox-os/arg-parser.git#1c434b55f3e1a0375ebcca85b3e88db7378e82fa" - [[package]] name = "atty" version = "0.2.14" @@ -148,7 +143,7 @@ checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ "block-padding", "byte-tools", - "byteorder 1.5.0", + "byteorder", "generic-array", ] @@ -173,12 +168,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -[[package]] -name = "byteorder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" - [[package]] name = "byteorder" version = "1.5.0" @@ -194,12 +183,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -259,21 +242,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "crossbeam-channel" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - [[package]] name = "defmt" version = "0.3.100" @@ -369,9 +337,9 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -391,7 +359,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ - "byteorder 1.5.0", + "byteorder", ] [[package]] @@ -449,17 +417,6 @@ dependencies = [ "cc", ] -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "indexmap" version = "2.9.0" @@ -526,9 +483,9 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0" dependencies = [ "bitflags 2.9.0", "ioslice", @@ -558,58 +515,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "net2" -version = "0.2.37" -source = "git+https://gitlab.redox-os.org/redox-os/net2-rs.git?branch=master#db0604dcb0a355e6b2fa5bcaad8f175bd6aeb5aa" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi", -] - -[[package]] -name = "netutils" -version = "0.1.0" -source = "git+https://gitlab.redox-os.org/redox-os/netutils.git#9d69d03348399a661017f21d6a74b18ba5ac6eea" -dependencies = [ - "anyhow", - "arg_parser", - "clap", - "libc", - "libredox", - "net2", - "ntpclient", - "pbr", - "redox-daemon", - "redox_event", - "redox_termios", - "regex", - "termion", - "url", -] - -[[package]] -name = "ntpclient" -version = "0.0.1" -source = "git+https://github.com/willem66745/ntpclient-rust#7e3bdf60eb940825789a8da5181025320e3050b0" -dependencies = [ - "byteorder 0.5.3", - "time", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -643,23 +554,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -[[package]] -name = "pbr" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5827dfa0d69b6c92493d6c38e633bbaa5937c153d0d7c28bf12313f8c6d514" -dependencies = [ - "crossbeam-channel", - "libc", - "winapi", -] - -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - [[package]] name = "plain" version = "0.2.3" @@ -933,7 +827,6 @@ dependencies = [ "anyhow", "libredox", "log", - "netutils", "redox-daemon", "redox-log", "redox-scheme 0.5.0 (git+https://gitlab.redox-os.org/redox-os/redox-scheme.git)", @@ -1052,8 +945,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dad095989c1533c1c266d9b1e8d70a1329dd3723c3edac6d03bbd67e7bf6f4bb" dependencies = [ "bitflags 1.3.2", - "byteorder 1.5.0", - "cfg-if 1.0.0", + "byteorder", + "cfg-if", "defmt 0.3.100", "heapless", "log", @@ -1130,39 +1023,13 @@ dependencies = [ "syn", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "twox-hash" version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "rand", "static_assertions", ] @@ -1173,50 +1040,18 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - [[package]] name = "unicode-ident" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna", - "matches", - "percent-encoding", -] - [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1229,7 +1064,7 @@ version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -1473,3 +1308,8 @@ dependencies = [ "redox-scheme 0.2.4", "redox_syscall", ] + +[[patch.unused]] +name = "net2" +version = "0.2.37" +source = "git+https://gitlab.redox-os.org/redox-os/net2-rs.git?branch=master#db0604dcb0a355e6b2fa5bcaad8f175bd6aeb5aa" diff --git a/ipcd/Cargo.toml b/ipcd/Cargo.toml index a0f945b200..cc7a241e8c 100644 --- a/ipcd/Cargo.toml +++ b/ipcd/Cargo.toml @@ -4,7 +4,7 @@ name = "ipcd" version = "0.1.0" [dependencies] -libredox = { version = "0.1.4", features = ["call"]} +libredox = { version = "0.1.6", features = ["call"]} redox-daemon = "0.1.2" redox_syscall = "0.5" redox-scheme = "0.7.0" diff --git a/ipcd/src/uds/dgram.rs b/ipcd/src/uds/dgram.rs index 94174192d4..42e9ae8ea4 100644 --- a/ipcd/src/uds/dgram.rs +++ b/ipcd/src/uds/dgram.rs @@ -190,7 +190,7 @@ impl<'sock> UdsDgramScheme<'sock> { SocketCall::GetSockOpt => self.handle_getsockopt(id, metadata[1] as i32, payload), SocketCall::SendMsg => self.handle_sendmsg(id, payload, ctx), SocketCall::RecvMsg => self.handle_recvmsg(id, payload), - _ => Err(Error::new(OPNOTSUP)), + _ => Err(Error::new(EOPNOTSUPP)), } } diff --git a/ipcd/src/uds/mod.rs b/ipcd/src/uds/mod.rs index bdaa2ea475..910aa8c207 100644 --- a/ipcd/src/uds/mod.rs +++ b/ipcd/src/uds/mod.rs @@ -208,6 +208,9 @@ impl NumFromBytes for usize { } fn get_uid_gid_from_pid(target_pid: usize) -> Result<(u32, u32, u32)> { + // broken anyways + return Err(Error::new(EINVAL)); + /* let mut buffer = [0u8; mem::size_of::()]; let _ = libredox::call::get_proc_credentials(target_pid, &mut buffer).map_err(|e| { log::error!( @@ -224,6 +227,7 @@ fn get_uid_gid_from_pid(target_pid: usize) -> Result<(u32, u32, u32)> { cursor += mem::size_of::() * 3; let gid = read_num::(&buffer[cursor..])?; Ok((pid, uid, gid)) + */ } fn read_msghdr_info(stream: &mut [u8]) -> Result<(usize, usize, usize)> { diff --git a/ipcd/src/uds/stream.rs b/ipcd/src/uds/stream.rs index 3835bbe37f..2f7bfd64ac 100644 --- a/ipcd/src/uds/stream.rs +++ b/ipcd/src/uds/stream.rs @@ -377,7 +377,7 @@ impl<'sock> UdsStreamScheme<'sock> { SocketCall::GetSockOpt => self.handle_getsockopt(id, metadata[1] as i32, payload), SocketCall::SendMsg => self.handle_sendmsg(id, payload, ctx), SocketCall::RecvMsg => self.handle_recvmsg(id, payload), - _ => Err(Error::new(OPNOTSUP)), + _ => Err(Error::new(EOPNOTSUPP)), } } diff --git a/netstack/Cargo.toml b/netstack/Cargo.toml index e278fb47e7..04f2e6088b 100644 --- a/netstack/Cargo.toml +++ b/netstack/Cargo.toml @@ -8,7 +8,6 @@ name = "smolnetd" path = "src/main.rs" [dependencies] -netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git" } redox_event = "0.4.1" redox-daemon = "0.1.2" redox_syscall = { version = "0.5", features = ["std"] } diff --git a/netstack/src/scheme/mod.rs b/netstack/src/scheme/mod.rs index 2cb39aac7d..75afbe0d19 100644 --- a/netstack/src/scheme/mod.rs +++ b/netstack/src/scheme/mod.rs @@ -5,7 +5,6 @@ use crate::router::route_table::{RouteTable, Rule}; use crate::router::Router; use crate::scheme::smoltcp::iface::SocketSet as SmoltcpSocketSet; use libredox::Fd; -use netutils::getcfg; use smoltcp; use smoltcp::iface::{Config, Interface as SmoltcpInterface}; use smoltcp::phy::Tracer; @@ -43,6 +42,13 @@ type Interface = Rc>; const MAX_DURATION: Duration = Duration::from_micros(u64::MAX); const MIN_DURATION: Duration = Duration::from_micros(0); +fn getcfg(key: &str) -> Result { + let mut value = String::new(); + let mut file = File::open(format!("/etc/net/{key}"))?; + file.read_to_string(&mut value)?; + Ok(value.trim().to_string()) +} + pub struct Smolnetd { router_device: Tracer, iface: Interface,