From 89083a25f92b1716c409b28a18f1909ed9694632 Mon Sep 17 00:00:00 2001 From: Red Bear OS Date: Wed, 8 Jul 2026 18:19:42 +0300 Subject: [PATCH] netcfg: UDP socket listing + routes/count node MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UDP sockets now enumerated in /scheme/netcfg/sockets/list: udp: local=0.0.0.0:53 udp: local=127.0.0.1:8080 - New RouteTable::len() method + /scheme/netcfg/route/count: cat /scheme/netcfg/route/count → 'routes: 4' Complete connections view now covers TCP + UDP listening sockets, plus route count summary for at-a-glance monitoring. --- netstack/src/router/route_table.rs | 4 ++++ netstack/src/scheme/netcfg/mod.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/netstack/src/router/route_table.rs b/netstack/src/router/route_table.rs index 5476397295..ff9f9b43db 100644 --- a/netstack/src/router/route_table.rs +++ b/netstack/src/router/route_table.rs @@ -130,6 +130,10 @@ impl RouteTable { rule.src = new_src; } } + + pub fn len(&self) -> usize { + self.rules.len() + } } impl Display for RouteTable { diff --git a/netstack/src/scheme/netcfg/mod.rs b/netstack/src/scheme/netcfg/mod.rs index 40e0ce6ae0..28ba702a8f 100644 --- a/netstack/src/scheme/netcfg/mod.rs +++ b/netstack/src/scheme/netcfg/mod.rs @@ -183,6 +183,15 @@ fn mk_root_node( local.map(|e| format!("{}", e)).unwrap_or_else(|| "-".to_string()), remote.map(|e| format!("{}", e)).unwrap_or_else(|| "-".to_string()))); } + if let smoltcp::socket::Socket::Udp(udp_sock) = socket { + let endpoint = udp_sock.endpoint(); + out.push_str(&format!("udp: local={}\n", + if endpoint.port != 0 { + format!("{}", endpoint) + } else { + "-".to_string() + })); + } } out } @@ -251,6 +260,12 @@ fn mk_root_node( format!("{}", route_table.borrow()) } }, + "count" => { + ro [route_table] || { + let count = route_table.borrow().len(); + format!("routes: {}\n", count) + } + }, "add" => { wo [iface, notifier, route_table] (Option, None) |cur_value, line| {