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,24 +540,26 @@ fn verify_reachable_ports(node: &Node, cluster_entrypoint: &ContactInfo) {
} }
let mut tcp_listeners = vec![]; let mut tcp_listeners = vec![];
for (purpose, addr) in &[ if let Some((rpc_addr, rpc_pubsub_addr, rpc_banks_addr)) = validator_config.rpc_addrs {
("RPC", node.info.rpc), for (purpose, addr) in &[
("RPC pubsub", node.info.rpc_pubsub), ("RPC", rpc_addr),
("RPC banks", node.info.rpc_banks), ("RPC pubsub", rpc_pubsub_addr),
] { ("RPC banks", rpc_banks_addr),
if ContactInfo::is_valid_address(&addr) { ] {
tcp_listeners.push(( if ContactInfo::is_valid_address(&addr) {
addr.port(), tcp_listeners.push((
TcpListener::bind(addr).unwrap_or_else(|err| { addr.port(),
error!( TcpListener::bind(addr).unwrap_or_else(|err| {
"Unable to bind to tcp/{} for {}: {}", error!(
addr.port(), "Unable to bind to tcp/{:?} for {}: {}",
purpose, addr.port(),
err purpose,
); err
exit(1); );
}), exit(1);
)); }),
));
}
} }
} }
@ -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;