Skip to content

Commit

Permalink
refactor gossip_addr out from spy and rpc methods
Browse files Browse the repository at this point in the history
  • Loading branch information
gregcusack committed Jun 17, 2024
1 parent 5417d9e commit 03d1761
Showing 1 changed file with 28 additions and 35 deletions.
63 changes: 28 additions & 35 deletions gossip/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,12 @@ fn process_spy_results(
}
}

fn process_spy(matches: &ArgMatches, socket_addr_space: SocketAddrSpace) -> std::io::Result<()> {
fn process_spy(
matches: &ArgMatches,
socket_addr_space: SocketAddrSpace,
entrypoint_addr: Option<SocketAddr>,
gossip_addr: SocketAddr,
) -> std::io::Result<()> {
let num_nodes_exactly = matches
.value_of("num_nodes_exactly")
.map(|num| num.to_string().parse().unwrap());
Expand All @@ -231,21 +236,6 @@ fn process_spy(matches: &ArgMatches, socket_addr_space: SocketAddrSpace) -> std:
let shred_version = value_t_or_exit!(matches, "shred_version", u16);
let identity_keypair = keypair_of(matches, "identity");

let entrypoint_addr = parse_entrypoint(matches);

let gossip_host = parse_gossip_host(matches, entrypoint_addr);

let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);

let discover_timeout = Duration::from_secs(timeout.unwrap_or(u64::MAX));
let (_all_peers, validators) = discover(
identity_keypair,
Expand Down Expand Up @@ -282,26 +272,14 @@ fn parse_entrypoint(matches: &ArgMatches) -> Option<SocketAddr> {
fn process_rpc_url(
matches: &ArgMatches,
socket_addr_space: SocketAddrSpace,
entrypoint_addr: Option<SocketAddr>,
gossip_addr: SocketAddr,
) -> std::io::Result<()> {
let any = matches.is_present("any");
let all = matches.is_present("all");
let entrypoint_addr = parse_entrypoint(matches);
let timeout = value_t_or_exit!(matches, "timeout", u64);
let shred_version = value_t_or_exit!(matches, "shred_version", u16);

let gossip_host = parse_gossip_host(matches, entrypoint_addr);

let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);

let (_all_peers, validators) = discover(
None, // keypair
entrypoint_addr.as_ref(),
Expand Down Expand Up @@ -348,11 +326,26 @@ fn main() -> Result<(), Box<dyn error::Error>> {
let matches = parse_matches();
let socket_addr_space = SocketAddrSpace::new(matches.is_present("allow_private_addr"));
match matches.subcommand() {
("spy", Some(matches)) => {
process_spy(matches, socket_addr_space)?;
}
("rpc-url", Some(matches)) => {
process_rpc_url(matches, socket_addr_space)?;
(gossip_type, Some(matches)) => {
let entrypoint_addr = parse_entrypoint(matches);
let gossip_host = parse_gossip_host(matches, entrypoint_addr);
let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);
match gossip_type {
"spy" => process_spy(matches, socket_addr_space, entrypoint_addr, gossip_addr)?,
"rpc-url" => {
process_rpc_url(matches, socket_addr_space, entrypoint_addr, gossip_addr)?
}
_ => unreachable!(),
}
}
_ => unreachable!(),
}
Expand Down

0 comments on commit 03d1761

Please sign in to comment.