Function zebra_network::peer_set::candidate_set::validate_addrs

source ·
fn validate_addrs(
    addrs: impl IntoIterator<Item = MetaAddr>,
    last_seen_limit: DateTime32
) -> impl Iterator<Item = MetaAddr>
Expand description

Check new addrs before adding them to the address book.

last_seen_limit is the maximum permitted last seen time, typically Utc::now.

If the data in an address is invalid, this function can:

  • modify the address data, or
  • delete the address.

§Security

Adjusts untrusted last seen times so they are not in the future. This stops malicious peers keeping all their addresses at the front of the connection queue. Honest peers with future clock skew also get adjusted.

Rejects all addresses if any calculated times overflow or underflow.