aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/peer/inbound.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-30 17:36:23 +0100
committertv <tv@krebsco.de>2026-10-30 17:36:23 +0100
commit0bb7a35141c12a58001b481851d33291d2a6ec98 (patch)
treeefa4f97f3ffe8e26e8ff697be97b05d31f530d43 /src/swarm/peer/inbound.rs
parent236a11a4798574b9c710dde4b97231ff4cade86d (diff)
add links messages
Introduce two new wire messages, LINKS and LINKS_REPLY (swarm::links). A member answers with its links: for each peer, the transport, whether it’s relayed, the RTT, and whether it’s dormant. It answers members only, at most every 5 s. This bumps wire::VERSION to 7. Every build answers, with or without the feature, so every node needs this patch before the map shows anything beyond its own node.
Diffstat (limited to 'src/swarm/peer/inbound.rs')
-rw-r--r--src/swarm/peer/inbound.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/swarm/peer/inbound.rs b/src/swarm/peer/inbound.rs
index 6a149a2..d4df6c7 100644
--- a/src/swarm/peer/inbound.rs
+++ b/src/swarm/peer/inbound.rs
@@ -160,6 +160,12 @@ pub(crate) async fn handle_message(
transport::ParsedMessage::StatusReply(remote) => {
on_status(state, &peer, &remote, reactivated).await;
}
+ transport::ParsedMessage::Links(request) => {
+ crate::swarm::links::answer(state, &peer, request).await;
+ }
+ transport::ParsedMessage::LinksReply(reply) => {
+ crate::swarm::links::received(state, &peer, reply);
+ }
transport::ParsedMessage::Who(_)
| transport::ParsedMessage::Me(_)
| transport::ParsedMessage::Ping(_)