Permit --gossip-host with --entrypoint
This commit is contained in:
parent
63f185f9bf
commit
965b132664
|
@ -9,7 +9,7 @@ use solana_client::rpc_client::RpcClient;
|
||||||
use solana_core::{contact_info::ContactInfo, gossip_service::discover};
|
use solana_core::{contact_info::ContactInfo, gossip_service::discover};
|
||||||
use solana_sdk::pubkey::Pubkey;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use std::error;
|
use std::error;
|
||||||
use std::net::SocketAddr;
|
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
||||||
use std::process::exit;
|
use std::process::exit;
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn error::Error>> {
|
fn main() -> Result<(), Box<dyn error::Error>> {
|
||||||
|
@ -74,9 +74,8 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||||
.long("gossip-host")
|
.long("gossip-host")
|
||||||
.value_name("HOST")
|
.value_name("HOST")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.conflicts_with("entrypoint")
|
|
||||||
.validator(solana_net_utils::is_host)
|
.validator(solana_net_utils::is_host)
|
||||||
.help("Gossip DNS name or IP address for the node when --entrypoint is not provided [default: 127.0.0.1]"),
|
.help("Gossip DNS name or IP address for the node [default: ask --entrypoint, or 127.0.0.1 when --entrypoint is not provided]"),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("num_nodes")
|
Arg::with_name("num_nodes")
|
||||||
|
@ -164,21 +163,29 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||||
|
|
||||||
let entrypoint_addr = parse_entrypoint(&matches);
|
let entrypoint_addr = parse_entrypoint(&matches);
|
||||||
|
|
||||||
let gossip_host = if let Some(entrypoint_addr) = entrypoint_addr {
|
let gossip_host = matches
|
||||||
solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap_or_else(|err| {
|
.value_of("gossip_host")
|
||||||
eprintln!(
|
.map(|gossip_host| {
|
||||||
"Failed to contact cluster entrypoint {}: {}",
|
solana_net_utils::parse_host(gossip_host).unwrap_or_else(|e| {
|
||||||
entrypoint_addr, err
|
eprintln!("failed to parse gossip-host: {}", e);
|
||||||
);
|
|
||||||
exit(1);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
solana_net_utils::parse_host(matches.value_of("gossip_host").unwrap_or("127.0.0.1"))
|
|
||||||
.unwrap_or_else(|err| {
|
|
||||||
eprintln!("Error: {}", err);
|
|
||||||
exit(1);
|
exit(1);
|
||||||
})
|
})
|
||||||
};
|
})
|
||||||
|
.unwrap_or_else(|| {
|
||||||
|
if let Some(entrypoint_addr) = entrypoint_addr {
|
||||||
|
solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap_or_else(
|
||||||
|
|err| {
|
||||||
|
eprintln!(
|
||||||
|
"Failed to contact cluster entrypoint {}: {}",
|
||||||
|
entrypoint_addr, err
|
||||||
|
);
|
||||||
|
exit(1);
|
||||||
|
},
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
let gossip_addr = SocketAddr::new(
|
let gossip_addr = SocketAddr::new(
|
||||||
gossip_host,
|
gossip_host,
|
||||||
|
|
Loading…
Reference in New Issue