aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/libp2p/mod.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-06 04:35:12 +0100
committertv <tv@krebsco.de>2026-11-06 04:35:12 +0100
commit9d6d7913ce8bf76717f75d7d4845a61f4889da80 (patch)
tree463bf53102c66f002b760002e86c7ef94ce2caa5 /src/transport/libp2p/mod.rs
parentceeec6f661e13a2d9fc7d28f88450f6d45af5c43 (diff)
other wire versions warned
Diffstat (limited to 'src/transport/libp2p/mod.rs')
-rw-r--r--src/transport/libp2p/mod.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/transport/libp2p/mod.rs b/src/transport/libp2p/mod.rs
index 3c4ddf5..2290dea 100644
--- a/src/transport/libp2p/mod.rs
+++ b/src/transport/libp2p/mod.rs
@@ -658,6 +658,7 @@ impl Transport for Libp2pTransport {
let stranger_reads = Arc::new(Semaphore::new(STRANGER_READS));
let probes = Arc::clone(&handler);
let admission = Arc::clone(&self.admission);
+ let other_versions = Arc::new(wire::OtherVersions::default());
tokio::spawn(async move {
while let Some((peer, stream)) = incoming.next().await {
let limit = crate::transport::Admission::limit(
@@ -686,6 +687,7 @@ impl Transport for Libp2pTransport {
};
let sender = sender.clone();
let probes = Arc::clone(&probes);
+ let other_versions = Arc::clone(&other_versions);
tokio::spawn(async move {
match read_message(stream, limit).await {
Ok(body) => match wire::decode(&body) {
@@ -701,6 +703,9 @@ impl Transport for Libp2pTransport {
Ok(message) => {
let _ = sender.send((peer, message, body.len())).await;
}
+ Err(wire::WireError::Version(version)) => {
+ other_versions.note(SCHEME, &peer.to_string(), version);
+ }
Err(error) => {
debug!(peer = %Addressed(SCHEME, &peer), error = %error, "Dropping a message that doesn't decode");
}