@@ -1837,24 +1837,25 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
1837
1837
1838
1838
// First add all connected peers, preferring to list the connected address if available.
1839
1839
let connected_peers = self . peer_manager . get_peer_node_ids ( ) ;
1840
- for ( node_id, con_addr_opt) in connected_peers {
1840
+ for ( node_id, con_addr_opt) in & connected_peers {
1841
1841
let stored_peer = self . peer_store . get_peer ( & node_id) ;
1842
1842
let stored_addr_opt = stored_peer. as_ref ( ) . map ( |p| p. address . clone ( ) ) ;
1843
+
1843
1844
let address = match ( con_addr_opt, stored_addr_opt) {
1844
- ( Some ( con_addr) , _) => NetAddress ( con_addr) ,
1845
+ ( Some ( con_addr) , _) => NetAddress ( con_addr. clone ( ) ) ,
1845
1846
( None , Some ( stored_addr) ) => stored_addr,
1846
1847
( None , None ) => continue ,
1847
1848
} ;
1848
1849
1849
1850
let is_persisted = stored_peer. is_some ( ) ;
1850
1851
let is_connected = true ;
1851
- let details = PeerDetails { node_id, address, is_persisted, is_connected } ;
1852
+ let details = PeerDetails { node_id : * node_id , address, is_persisted, is_connected } ;
1852
1853
peers. push ( details) ;
1853
1854
}
1854
1855
1855
1856
// Now add all known-but-offline peers, too.
1856
1857
for p in self . peer_store . list_peers ( ) {
1857
- if peers . iter ( ) . find ( |d| d . node_id == p. node_id ) . is_some ( ) {
1858
+ if connected_peers . iter ( ) . find ( |c| c . 0 == p. node_id ) . is_some ( ) {
1858
1859
continue ;
1859
1860
}
1860
1861
0 commit comments