@@ -1837,24 +1837,25 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
18371837
18381838 // First add all connected peers, preferring to list the connected address if available.
18391839 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 {
18411841 let stored_peer = self . peer_store . get_peer ( & node_id) ;
18421842 let stored_addr_opt = stored_peer. as_ref ( ) . map ( |p| p. address . clone ( ) ) ;
1843+
18431844 let address = match ( con_addr_opt, stored_addr_opt) {
1844- ( Some ( con_addr) , _) => NetAddress ( con_addr) ,
1845+ ( Some ( con_addr) , _) => NetAddress ( con_addr. clone ( ) ) ,
18451846 ( None , Some ( stored_addr) ) => stored_addr,
18461847 ( None , None ) => continue ,
18471848 } ;
18481849
18491850 let is_persisted = stored_peer. is_some ( ) ;
18501851 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 } ;
18521853 peers. push ( details) ;
18531854 }
18541855
18551856 // Now add all known-but-offline peers, too.
18561857 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 ( ) {
18581859 continue ;
18591860 }
18601861
0 commit comments