File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed
src/protocol/libp2p/kademlia Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -101,8 +101,8 @@ impl KBucket {
101101
102102 /// Get iterator over the k-bucket, sorting the k-bucket entries in increasing order
103103 /// by distance.
104- pub fn closest_iter < K : Clone > ( & self , target : & Key < K > ) -> impl Iterator < Item = KademliaPeer > {
105- let mut nodes = self . nodes . clone ( ) ;
104+ pub fn closest_iter < K : Clone > ( & self , target : & Key < K > ) -> impl Iterator < Item = & KademliaPeer > {
105+ let mut nodes: Vec < _ > = self . nodes . iter ( ) . collect ( ) ;
106106 nodes. sort_by ( |a, b| target. distance ( & a. key ) . cmp ( & target. distance ( & b. key ) ) ) ;
107107 nodes. into_iter ( ) . filter ( |peer| !peer. addresses . is_empty ( ) )
108108 }
Original file line number Diff line number Diff line change @@ -187,9 +187,10 @@ impl RoutingTable {
187187
188188 /// Get `limit` closest peers to `target` from the k-buckets.
189189 pub fn closest < K : Clone > ( & mut self , target : & Key < K > , limit : usize ) -> Vec < KademliaPeer > {
190- ClosestBucketsIter :: new ( self . local_key . distance ( target) )
191- . flat_map ( |index| self . buckets [ index. get ( ) ] . closest_iter ( target) )
190+ ClosestBucketsIter :: new ( self . local_key . distance ( & target) )
191+ . flat_map ( |index| self . buckets [ index. get ( ) ] . closest_iter ( & target) )
192192 . take ( limit)
193+ . cloned ( )
193194 . collect ( )
194195 }
195196}
You can’t perform that action at this time.
0 commit comments