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
commit8ae3d55e7f793ee6555de9eb40d675458e2e2fe1 (patch)
tree81d7307693956b4003a514133614cbc77e04973c /src/swarm/peer/inbound.rs
parent287c4e4832709ab4137e4786e593466390eadd53 (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(_)