solana-validator --rpc-bind-address
argument now works as expected
This commit is contained in:
@ -967,6 +967,15 @@ pub fn main() {
|
||||
"--repair-validator",
|
||||
);
|
||||
|
||||
let bind_address = solana_net_utils::parse_host(matches.value_of("bind_address").unwrap())
|
||||
.expect("invalid bind_address");
|
||||
let rpc_bind_address = if matches.is_present("rpc_bind_address") {
|
||||
solana_net_utils::parse_host(matches.value_of("rpc_bind_address").unwrap())
|
||||
.expect("invalid rpc_bind_address")
|
||||
} else {
|
||||
bind_address
|
||||
};
|
||||
|
||||
let mut validator_config = ValidatorConfig {
|
||||
dev_halt_at_slot: value_t!(matches, "dev_halt_at_slot", Slot).ok(),
|
||||
expected_genesis_hash: matches
|
||||
@ -994,9 +1003,13 @@ pub fn main() {
|
||||
u64
|
||||
),
|
||||
},
|
||||
rpc_ports: value_t!(matches, "rpc_port", u16)
|
||||
.ok()
|
||||
.map(|rpc_port| (rpc_port, rpc_port + 1, rpc_port + 3)),
|
||||
rpc_addrs: value_t!(matches, "rpc_port", u16).ok().map(|rpc_port| {
|
||||
(
|
||||
SocketAddr::new(rpc_bind_address, rpc_port),
|
||||
SocketAddr::new(rpc_bind_address, rpc_port + 1),
|
||||
SocketAddr::new(rpc_bind_address, rpc_port + 3),
|
||||
)
|
||||
}),
|
||||
voting_disabled: matches.is_present("no_voting"),
|
||||
wait_for_supermajority: value_t!(matches, "wait_for_supermajority", Slot).ok(),
|
||||
trusted_validators,
|
||||
@ -1017,15 +1030,6 @@ pub fn main() {
|
||||
solana_net_utils::parse_port_range(matches.value_of("dynamic_port_range").unwrap())
|
||||
.expect("invalid dynamic_port_range");
|
||||
|
||||
let bind_address = solana_net_utils::parse_host(matches.value_of("bind_address").unwrap())
|
||||
.expect("invalid bind_address");
|
||||
let rpc_bind_address = if matches.is_present("rpc_bind_address") {
|
||||
solana_net_utils::parse_host(matches.value_of("rpc_bind_address").unwrap())
|
||||
.expect("invalid rpc_bind_address")
|
||||
} else {
|
||||
bind_address
|
||||
};
|
||||
|
||||
let account_paths = if let Some(account_paths) = matches.value_of("account_paths") {
|
||||
account_paths.split(',').map(PathBuf::from).collect()
|
||||
} else {
|
||||
@ -1218,10 +1222,10 @@ pub fn main() {
|
||||
);
|
||||
|
||||
if !private_rpc {
|
||||
if let Some((rpc_port, rpc_pubsub_port, rpc_banks_port)) = validator_config.rpc_ports {
|
||||
node.info.rpc = SocketAddr::new(node.info.gossip.ip(), rpc_port);
|
||||
node.info.rpc_pubsub = SocketAddr::new(node.info.gossip.ip(), rpc_pubsub_port);
|
||||
node.info.rpc_banks = SocketAddr::new(node.info.gossip.ip(), rpc_banks_port);
|
||||
if let Some((rpc_addr, rpc_pubsub_addr, rpc_banks_addr)) = validator_config.rpc_addrs {
|
||||
node.info.rpc = SocketAddr::new(node.info.gossip.ip(), rpc_addr.port());
|
||||
node.info.rpc_pubsub = SocketAddr::new(node.info.gossip.ip(), rpc_pubsub_addr.port());
|
||||
node.info.rpc_banks = SocketAddr::new(node.info.gossip.ip(), rpc_banks_addr.port());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1240,19 +1244,23 @@ pub fn main() {
|
||||
|
||||
let mut tcp_listeners = vec![];
|
||||
if !private_rpc {
|
||||
if let Some((rpc_port, rpc_pubsub_port, rpc_banks_port)) = validator_config.rpc_ports {
|
||||
for (purpose, port) in &[
|
||||
("RPC", rpc_port),
|
||||
("RPC pubsub", rpc_pubsub_port),
|
||||
("RPC banks", rpc_banks_port),
|
||||
if let Some((rpc_addr, rpc_pubsub_addr, rpc_banks_addr)) = validator_config.rpc_addrs {
|
||||
for (purpose, addr) in &[
|
||||
("RPC", rpc_addr),
|
||||
("RPC pubsub", rpc_pubsub_addr),
|
||||
("RPC banks", rpc_banks_addr),
|
||||
] {
|
||||
tcp_listeners.push((
|
||||
*port,
|
||||
TcpListener::bind(&SocketAddr::from((rpc_bind_address, *port)))
|
||||
.unwrap_or_else(|err| {
|
||||
error!("Unable to bind to tcp/{} for {}: {}", port, purpose, err);
|
||||
exit(1);
|
||||
}),
|
||||
addr.port(),
|
||||
TcpListener::bind(addr).unwrap_or_else(|err| {
|
||||
error!(
|
||||
"Unable to bind to tcp/{} for {}: {}",
|
||||
addr.port(),
|
||||
purpose,
|
||||
err
|
||||
);
|
||||
exit(1);
|
||||
}),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user