netcfg: add sockets/list node for active connection count

This commit is contained in:
Red Bear OS
2026-07-08 09:42:03 +03:00
parent 81c366359d
commit cb1c326645
2 changed files with 14 additions and 1 deletions
+1
View File
@@ -170,6 +170,7 @@ impl Smolnetd {
netcfg_file,
Rc::clone(&route_table),
Rc::clone(&devices),
Rc::clone(&socket_set),
)?,
})
}
+13 -1
View File
@@ -26,7 +26,7 @@ use crate::router::route_table::{RouteTable, Rule};
use self::nodes::*;
use self::notifier::*;
use super::{post_fevent, Interface};
use super::{post_fevent, Interface, SocketSet};
const WRITE_BUFFER_MAX_SIZE: usize = 0xffff;
@@ -71,8 +71,18 @@ fn mk_root_node(
dns_config: DNSConfigRef,
route_table: Rc<RefCell<RouteTable>>,
devices: Rc<RefCell<DeviceList>>,
socket_set: Rc<RefCell<SocketSet>>,
) -> CfgNodeRef {
cfg_node! {
"sockets" => {
"list" => {
ro [socket_set] || {
let set = socket_set.borrow();
let mut out = format!("sockets: {}\n", set.iter().count());
out
}
}
},
"resolv" => {
"nameserver" => {
rw [dns_config, notifier] (Option<Ipv4Address>, None)
@@ -337,6 +347,7 @@ impl NetCfgScheme {
scheme_file: Socket,
route_table: Rc<RefCell<RouteTable>>,
devices: Rc<RefCell<DeviceList>>,
socket_set: Rc<RefCell<SocketSet>>,
) -> Result<NetCfgScheme> {
let notifier = Notifier::new_ref();
let dns_config = Rc::new(RefCell::new(DNSConfig {
@@ -351,6 +362,7 @@ impl NetCfgScheme {
dns_config,
route_table,
devices,
socket_set,
),
notifier,
};