Use validator_config for RPC address instead of cluster_info for port verification checks

This commit is contained in:
Michael Vines 2020-09-19 18:21:16 -07:00 committed by mergify[bot]
parent f561eb917f
commit 76dada3118
1 changed files with 26 additions and 20 deletions

View File

@ -514,7 +514,11 @@ fn start_logger(logfile: Option<String>) -> Option<JoinHandle<()>> {
logger_thread logger_thread
} }
fn verify_reachable_ports(node: &Node, cluster_entrypoint: &ContactInfo) { fn verify_reachable_ports(
node: &Node,
cluster_entrypoint: &ContactInfo,
validator_config: &ValidatorConfig,
) {
let mut udp_sockets = vec![&node.sockets.gossip, &node.sockets.repair]; let mut udp_sockets = vec![&node.sockets.gossip, &node.sockets.repair];
if ContactInfo::is_valid_address(&node.info.serve_repair) { if ContactInfo::is_valid_address(&node.info.serve_repair) {
@ -536,17 +540,18 @@ fn verify_reachable_ports(node: &Node, cluster_entrypoint: &ContactInfo) {
} }
let mut tcp_listeners = vec![]; let mut tcp_listeners = vec![];
if let Some((rpc_addr, rpc_pubsub_addr, rpc_banks_addr)) = validator_config.rpc_addrs {
for (purpose, addr) in &[ for (purpose, addr) in &[
("RPC", node.info.rpc), ("RPC", rpc_addr),
("RPC pubsub", node.info.rpc_pubsub), ("RPC pubsub", rpc_pubsub_addr),
("RPC banks", node.info.rpc_banks), ("RPC banks", rpc_banks_addr),
] { ] {
if ContactInfo::is_valid_address(&addr) { if ContactInfo::is_valid_address(&addr) {
tcp_listeners.push(( tcp_listeners.push((
addr.port(), addr.port(),
TcpListener::bind(addr).unwrap_or_else(|err| { TcpListener::bind(addr).unwrap_or_else(|err| {
error!( error!(
"Unable to bind to tcp/{} for {}: {}", "Unable to bind to tcp/{:?} for {}: {}",
addr.port(), addr.port(),
purpose, purpose,
err err
@ -556,6 +561,7 @@ fn verify_reachable_ports(node: &Node, cluster_entrypoint: &ContactInfo) {
)); ));
} }
} }
}
if let Some(ip_echo) = &node.sockets.ip_echo { if let Some(ip_echo) = &node.sockets.ip_echo {
let ip_echo = ip_echo.try_clone().expect("unable to clone tcp_listener"); let ip_echo = ip_echo.try_clone().expect("unable to clone tcp_listener");
@ -601,7 +607,7 @@ fn rpc_bootstrap(
validator_config: &mut ValidatorConfig, validator_config: &mut ValidatorConfig,
bootstrap_config: RpcBootstrapConfig, bootstrap_config: RpcBootstrapConfig,
) { ) {
verify_reachable_ports(&node, cluster_entrypoint); verify_reachable_ports(&node, cluster_entrypoint, &validator_config);
if bootstrap_config.no_genesis_fetch && bootstrap_config.no_snapshot_fetch { if bootstrap_config.no_genesis_fetch && bootstrap_config.no_snapshot_fetch {
return; return;