From a22fc45c0df2455e33bd67e025af617d1c86ea4e Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Sat, 16 Mar 2024 09:56:50 +0100 Subject: [PATCH] Handle but don't implement scheme cancellation. --- Cargo.lock | 54 +++++++++++++++++++---------------------------------- Cargo.toml | 6 +++--- src/main.rs | 7 +++++-- 3 files changed, 27 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ee9b3cc52..eb816b77f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,15 +4,9 @@ version = 3 [[package]] name = "bitflags" -version = "1.3.2" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "block-buffer" @@ -73,28 +67,17 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "309ba69985d5170852ebbe8fbb33850d20794d0aed5b210dfea2db798df64e10" dependencies = [ - "bitflags 2.4.1", - "libc", - "redox_syscall", -] - -[[package]] -name = "libredox" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962b650e6b934f95cec493e1464e0f5cba98dd9ba9ef2b1c42cdfdb7864cab5a" -dependencies = [ - "bitflags 2.4.1", + "bitflags", "libc", "redox_syscall", ] @@ -131,7 +114,7 @@ checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" name = "randd" version = "0.1.0" dependencies = [ - "libredox 0.0.3", + "libredox", "rand_chacha", "rand_core", "raw-cpuid", @@ -147,35 +130,36 @@ version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" dependencies = [ - "bitflags 2.4.1", + "bitflags", ] [[package]] name = "redox-daemon" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353178b5771a301b9d2b318914ab5dfeb21dd6e65930faedde19248cfceca5a7" +checksum = "7fbdeffdb03cf2961b211a2023e683d71f2c225ea93404da5dc34b0dc94f0341" dependencies = [ "libc", - "libredox 0.0.1", + "libredox", ] [[package]] name = "redox-scheme" -version = "0.1.0" -source = "git+https://gitlab.redox-os.org/redox-os/redox-scheme.git#2c4a85399defee72d25091922450126cdf6130a2" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a4d4161697395d7cc9b182a14a753b2ba0243dcf622e278e644c6e7f74904c1" dependencies = [ - "libredox 0.0.3", + "libredox", "redox_syscall", ] [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "13c178f952cc7eac391f3124bd9851d1ac0bdbc4c9de2d892ccd5f0d8b160e96" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8dde5e6b41..7d77129c7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,10 +7,10 @@ edition = "2021" rand_chacha = "0.2" rand_core = "0.5" redox-daemon = "0.1.2" -redox_syscall = "0.4.1" -libredox = "0.0.3" +redox_syscall = "0.5" +libredox = "0.1.2" sha2 = "0.8" -redox-scheme = { git = "https://gitlab.redox-os.org/redox-os/redox-scheme.git" } +redox-scheme = "0.2" [target.'cfg(target_arch = "x86_64")'.dependencies] raw-cpuid = "11.0.1" diff --git a/src/main.rs b/src/main.rs index d841d2006b..09d7a8b025 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,7 @@ pub const MODE_READ: u16 = 0o4; #[cfg(target_arch = "x86_64")] use raw_cpuid::CpuId; -use redox_scheme::{Socket, SignalBehavior, SchemeMut}; +use redox_scheme::{RequestKind, SchemeMut, SignalBehavior, Socket}; use syscall::data::Stat; use syscall::flag::EventFlags; use syscall::{ @@ -380,7 +380,10 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! { libredox::call::setrens(0, 0).expect("randd: failed to enter null namespace"); while let Some(request) = scheme.socket.next_request(SignalBehavior::Restart).expect("error reading packet") { - let response = request.handle_scheme_mut(&mut scheme); + let RequestKind::Call(call) = request.kind() else { + continue; + }; + let response = call.handle_scheme_mut(&mut scheme); scheme.socket.write_responses(&[response], SignalBehavior::Restart).expect("error writing packet"); }