Use redox-daemon
This commit is contained in:
Generated
+11
@@ -270,6 +270,16 @@ version = "1.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||
|
||||
[[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_event"
|
||||
version = "0.1.0"
|
||||
@@ -286,6 +296,7 @@ dependencies = [
|
||||
"dns-parser",
|
||||
"log 0.3.9",
|
||||
"netutils",
|
||||
"redox-daemon",
|
||||
"redox_event",
|
||||
"redox_syscall",
|
||||
"smoltcp",
|
||||
|
||||
@@ -17,6 +17,7 @@ path = "src/lib/lib.rs"
|
||||
[dependencies]
|
||||
netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git", branch = "redox-unix" }
|
||||
redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" }
|
||||
redox-daemon = "0.1"
|
||||
redox_syscall = "0.2.12"
|
||||
byteorder = { version = "1.0", default-features = false }
|
||||
dns-parser = "0.7.1"
|
||||
|
||||
+7
-4
@@ -21,7 +21,7 @@ use syscall::{CloneFlags, EventFlags};
|
||||
|
||||
mod scheme;
|
||||
|
||||
fn run() -> Result<()> {
|
||||
fn run(daemon: redox_daemon::Daemon) -> Result<()> {
|
||||
use syscall::flag::*;
|
||||
|
||||
let dns_fd = syscall::open(":dns", O_RDWR | O_CREAT | O_NONBLOCK)
|
||||
@@ -53,6 +53,8 @@ fn run() -> Result<()> {
|
||||
|
||||
syscall::setrens(0, 0).expect("dnsd: failed to enter null namespace");
|
||||
|
||||
daemon.ready().expect("dnsd: failed to notify parent");
|
||||
|
||||
let dnsd_ = Rc::clone(&dnsd);
|
||||
|
||||
event_queue
|
||||
@@ -82,11 +84,12 @@ fn run() -> Result<()> {
|
||||
}
|
||||
|
||||
fn main() {
|
||||
if unsafe { syscall::clone(CloneFlags::empty()).unwrap() } == 0 {
|
||||
redox_daemon::Daemon::new(move |daemon| {
|
||||
logger::init_logger();
|
||||
if let Err(err) = run() {
|
||||
if let Err(err) = run(daemon) {
|
||||
error!("dnsd: {}", err);
|
||||
process::exit(1);
|
||||
}
|
||||
}
|
||||
process::exit(0);
|
||||
}).expect("dnsd: failed to daemonize");
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ mod device;
|
||||
mod port_set;
|
||||
mod scheme;
|
||||
|
||||
fn run() -> Result<()> {
|
||||
fn run(daemon: redox_daemon::Daemon) -> Result<()> {
|
||||
use syscall::flag::*;
|
||||
|
||||
trace!("opening network:");
|
||||
@@ -91,6 +91,8 @@ fn run() -> Result<()> {
|
||||
|
||||
syscall::setrens(0, 0).expect("smolnetd: failed to enter null namespace");
|
||||
|
||||
daemon.ready().expect("smolnetd: failed to notify parent");
|
||||
|
||||
let smolnetd_ = Rc::clone(&smolnetd);
|
||||
|
||||
event_queue
|
||||
@@ -150,12 +152,13 @@ fn run() -> Result<()> {
|
||||
}
|
||||
|
||||
fn main() {
|
||||
if unsafe { syscall::clone(CloneFlags::empty()).unwrap() } == 0 {
|
||||
redox_daemon::Daemon::new(move |daemon| {
|
||||
logger::init_logger();
|
||||
|
||||
if let Err(err) = run() {
|
||||
if let Err(err) = run(daemon) {
|
||||
error!("smoltcpd: {}", err);
|
||||
process::exit(1);
|
||||
}
|
||||
}
|
||||
process::exit(0);
|
||||
}).expect("smoltcp: failed to daemonize");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user