Handle but don't implement scheme cancellation.

This commit is contained in:
4lDO2
2024-03-16 09:56:50 +01:00
parent 92b4cf542e
commit a22fc45c0d
3 changed files with 27 additions and 40 deletions
Generated
+19 -35
View File
@@ -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]]
+3 -3
View File
@@ -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"
+5 -2
View File
@@ -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");
}