From a9ecdc0ae5f77fe2c90008f29906bbaf4ff79f12 Mon Sep 17 00:00:00 2001 From: behzad nouri Date: Wed, 16 Aug 2023 20:41:40 +0000 Subject: [PATCH] asserts that socket addresses set in new_with_external_ip are valid (#32860) new_with_external_ip silently ignores errors when setting socket addresses which makes it harder to catch bugs: https://github.com/solana-labs/solana/blob/7beeb8310/gossip/src/cluster_info.rs#L3054-L3063 --- gossip/src/cluster_info.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gossip/src/cluster_info.rs b/gossip/src/cluster_info.rs index ddbc1d94c0..eaf8e8dc3f 100644 --- a/gossip/src/cluster_info.rs +++ b/gossip/src/cluster_info.rs @@ -3051,16 +3051,19 @@ impl Node { 0u16, // shred_version ); let addr = gossip_addr.ip(); - let _ = info.set_gossip((addr, gossip_port)); - let _ = info.set_tvu((addr, tvu_port)); - let _ = info.set_tvu_quic((addr, tvu_quic_port)); - let _ = info.set_tpu(public_tpu_addr.unwrap_or_else(|| SocketAddr::new(addr, tpu_port))); - let _ = info.set_tpu_forwards( + info.set_gossip((addr, gossip_port)).unwrap(); + info.set_tvu((addr, tvu_port)).unwrap(); + info.set_tvu_quic((addr, tvu_quic_port)).unwrap(); + info.set_tpu(public_tpu_addr.unwrap_or_else(|| SocketAddr::new(addr, tpu_port))) + .unwrap(); + info.set_tpu_forwards( public_tpu_forwards_addr.unwrap_or_else(|| SocketAddr::new(addr, tpu_forwards_port)), - ); - let _ = info.set_tpu_vote((addr, tpu_vote_port)); - let _ = info.set_serve_repair((addr, serve_repair_port)); - let _ = info.set_serve_repair_quic((addr, serve_repair_quic_port)); + ) + .unwrap(); + info.set_tpu_vote((addr, tpu_vote_port)).unwrap(); + info.set_serve_repair((addr, serve_repair_port)).unwrap(); + info.set_serve_repair_quic((addr, serve_repair_quic_port)) + .unwrap(); trace!("new ContactInfo: {:?}", info); Node {