Просмотр исходного кода

p2pnet: localnet impl minor optimization

aggstam 3 лет назад
Родитель
Сommit
830e05e30c
1 измененных файлов с 9 добавлено и 7 удалено
  1. 9 7
      src/net/protocol/protocol_address.rs

+ 9 - 7
src/net/protocol/protocol_address.rs

@@ -67,10 +67,9 @@ impl ProtocolAddress {
         loop {
             let addrs_msg = self.addrs_sub.receive().await?;
             debug!(target: "net", "ProtocolAddress::handle_receive_addrs() received {} addrs", addrs_msg.addrs.len());
-            let mut filtered = vec![];
-            for (i, addr) in addrs_msg.addrs.iter().enumerate() {
-                debug!(target: "net", "  addr[{}]: {}", i, addr);
-                if !self.settings.localnet {
+            let addrs = if !self.settings.localnet {
+                let mut filtered = vec![];
+                for addr in &addrs_msg.addrs {
                     match addr.host_str() {
                         Some(host_str) => {
                             if LOCALNET.contains(&host_str) {
@@ -83,10 +82,13 @@ impl ProtocolAddress {
                             continue
                         }
                     }
+                    filtered.push(addr.clone());
                 }
-                filtered.push(addr.clone());
-            }
-            self.hosts.store(filtered).await;
+                filtered
+            } else {
+                addrs_msg.addrs.clone()
+            };
+            self.hosts.store(addrs).await;
         }
     }