netstack: Merge the redox_netstack lib into smolnetd

This commit is contained in:
bjorn3
2025-06-28 16:18:34 +02:00
parent 20ee161085
commit 2f51590d9f
9 changed files with 25 additions and 10 deletions
+20
View File
@@ -1,6 +1,7 @@
use redox_scheme::{RequestKind, SignalBehavior, Socket};
use std::env;
use std::fs::OpenOptions;
use std::io::{Read, Write};
use std::process;
use crate::scheme::LogScheme;
@@ -19,6 +20,11 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! {
let socket = Socket::create("log").expect("logd: failed to create log scheme");
std::process::Command::new(std::env::current_exe().unwrap())
.arg("--internal-copy-kernel-log")
.spawn()
.unwrap();
eprintln!("logd: ready for logging on log:");
daemon.ready().expect("logd: failed to notify parent");
@@ -47,5 +53,19 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! {
}
fn main() {
if std::env::args().nth(1).as_deref() == Some("--internal-copy-kernel-log") {
let mut debug_file = std::fs::File::open("/scheme/sys/log").unwrap();
let mut log_file = std::fs::OpenOptions::new()
.write(true)
.open("/scheme/log/kernel")
.unwrap();
let mut buf = [0; 4096];
loop {
let n = debug_file.read(&mut buf).unwrap();
assert!(n != 0); // FIXME currently fails as /scheme/log/kernel presents a snapshot of the log queue
log_file.write_all(&buf[..n]).unwrap();
}
}
redox_daemon::Daemon::new(daemon).expect("logd: failed to daemonize");
}
-4
View File
@@ -7,10 +7,6 @@ edition = "2021"
name = "smolnetd"
path = "src/main.rs"
[lib]
name = "redox_netstack"
path = "src/lib/lib.rs"
[dependencies]
netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git" }
redox_event = "0.4.1"
-2
View File
@@ -1,2 +0,0 @@
pub mod error;
pub mod logger;
+2 -1
View File
@@ -7,12 +7,13 @@ use event::{EventFlags, EventQueue};
use libredox::flag::{O_CREAT, O_NONBLOCK, O_RDWR};
use libredox::Fd;
use redox_netstack::logger;
use scheme::Smolnetd;
use smoltcp::wire::EthernetAddress;
mod buffer_pool;
mod error;
mod link;
mod logger;
mod port_set;
mod router;
mod scheme;
+1 -1
View File
@@ -28,7 +28,7 @@ use self::ip::IpScheme;
use self::netcfg::NetCfgScheme;
use self::tcp::TcpScheme;
use self::udp::UdpScheme;
use redox_netstack::error::{Error, Result};
use crate::error::{Error, Result};
mod icmp;
mod ip;
+1 -1
View File
@@ -19,13 +19,13 @@ use syscall::{
Result as SyscallResult, SchemeMut,
};
use crate::error::{Error, Result};
use crate::link::DeviceList;
use crate::router::route_table::{RouteTable, Rule};
use self::nodes::*;
use self::notifier::*;
use super::{post_fevent, Interface};
use redox_netstack::error::{Error, Result};
const WRITE_BUFFER_MAX_SIZE: usize = 0xffff;
+1 -1
View File
@@ -20,9 +20,9 @@ use syscall::{
};
use super::Interface;
use crate::error::{Error, Result};
use crate::router::route_table::RouteTable;
use crate::scheme::smoltcp::iface::SocketHandle;
use redox_netstack::error::{Error, Result};
use smoltcp::socket::AnySocket;
use super::{post_fevent, SocketSet};