Use redox-daemon

This commit is contained in:
4lDO2
2022-07-19 10:36:30 +02:00
parent 71fd85ce53
commit d1709e5dbc
3 changed files with 22 additions and 3 deletions
Generated
+17
View File
@@ -8,14 +8,31 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "libc"
version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
[[package]]
name = "ptyd"
version = "0.1.0"
dependencies = [
"redox-daemon",
"redox_syscall",
"redox_termios",
]
[[package]]
name = "redox-daemon"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21e31c834277709c7ff3eb74959fe62be4b45b1189ba9d41fd3744cd3a9c554f"
dependencies = [
"libc",
"redox_syscall",
]
[[package]]
name = "redox_syscall"
version = "0.2.16"
+1
View File
@@ -3,5 +3,6 @@ name = "ptyd"
version = "0.1.0"
[dependencies]
redox-daemon = "0.1"
redox_syscall = "0.2.12"
redox_termios = "0.1.2"
+4 -3
View File
@@ -22,8 +22,7 @@ mod winsize;
use scheme::PtyScheme;
fn main(){
// Daemonize
if unsafe { syscall::clone(CloneFlags::empty()).unwrap() } == 0 {
redox_daemon::Daemon::new(move |daemon| {
let mut event_file = OpenOptions::new()
.read(true)
.write(true)
@@ -48,6 +47,8 @@ fn main(){
syscall::setrens(0, 0).expect("ptyd: failed to enter null namespace");
daemon.ready().expect("pty: failed to notify parent");
event_file.write(&Event {
id: socket.as_raw_fd() as usize,
flags: syscall::EVENT_READ,
@@ -115,7 +116,7 @@ fn main(){
}
}
}
}
}).expect("pty: failed to daemonize");
}
fn timeout(time_file: &mut File) -> io::Result<()> {