From 70f6dc84b43370be2896501205b995f16e827e5f Mon Sep 17 00:00:00 2001 From: Gaius Date: Tue, 1 Sep 2026 19:40:25 +0800 Subject: [PATCH] fix(piece): collect local peer traffic metrics for cached pieces Previously, when a piece was already finished and returned early from local storage, no traffic metrics were recorded. This caused local peer traffic to be under-reported in all download paths. Signed-off-by: Gaius --- dragonfly-client/src/resource/piece.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dragonfly-client/src/resource/piece.rs b/dragonfly-client/src/resource/piece.rs index 5240ed74..4c0d961f 100644 --- a/dragonfly-client/src/resource/piece.rs +++ b/dragonfly-client/src/resource/piece.rs @@ -381,6 +381,7 @@ impl Piece { // return the piece directly. if piece.is_finished() { debug!("finished piece {} from local", piece_id); + collect_download_piece_traffic_metrics(&TrafficType::LocalPeer, length); return Ok(piece); } @@ -516,6 +517,7 @@ impl Piece { // return the piece directly. if piece.is_finished() { debug!("finished piece {} from local", piece_id); + collect_download_piece_traffic_metrics(&TrafficType::LocalPeer, length); return Ok(piece); } @@ -754,6 +756,7 @@ impl Piece { // return the piece directly. if piece.is_finished() { debug!("finished persistent piece {} from local", piece_id); + collect_download_piece_traffic_metrics(&TrafficType::LocalPeer, length); return Ok(piece); } @@ -879,6 +882,7 @@ impl Piece { // return the piece directly. if piece.is_finished() { debug!("finished piece {} from local", piece_id); + collect_download_piece_traffic_metrics(&TrafficType::LocalPeer, length); return Ok(piece); } @@ -1116,6 +1120,7 @@ impl Piece { // return the piece directly. if piece.is_finished() { debug!("finished persistent cache piece {} from local", piece_id); + collect_download_piece_traffic_metrics(&TrafficType::LocalPeer, length); return Ok(piece); }