Add DNS resolution to cli tools

This commit is contained in:
Michael Vines
2019-04-13 19:34:27 -07:00
committed by Grimes
parent 6859907df9
commit 0767c0c07f
13 changed files with 100 additions and 57 deletions

View File

@ -20,6 +20,7 @@ solana-budget-api = { path = "../programs/budget_api", version = "0.13.0" }
solana-client = { path = "../client", version = "0.13.0" }
solana-drone = { path = "../drone", version = "0.13.0" }
solana-logger = { path = "../logger", version = "0.13.0" }
solana-netutil = { path = "../netutil", version = "0.13.0" }
solana-sdk = { path = "../sdk", version = "0.13.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.13.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.13.0" }

View File

@ -7,28 +7,31 @@ use solana_wallet::wallet::{parse_command, process_command, WalletConfig, Wallet
use std::error;
pub fn parse_args(matches: &ArgMatches<'_>) -> Result<WalletConfig, Box<dyn error::Error>> {
let host = matches
.value_of("host")
.unwrap()
.parse()
.or_else(|_| Err(WalletError::BadParameter("Invalid host".to_string())))?;
let host = solana_netutil::parse_host(matches.value_of("host").unwrap()).or_else(|err| {
Err(WalletError::BadParameter(format!(
"Invalid host: {:?}",
err
)))
})?;
let drone_host = if let Some(drone_host) = matches.value_of("drone_host") {
Some(
drone_host
.parse()
.or_else(|_| Err(WalletError::BadParameter("Invalid drone host".to_string())))?,
)
Some(solana_netutil::parse_host(drone_host).or_else(|err| {
Err(WalletError::BadParameter(format!(
"Invalid drone host: {:?}",
err
)))
})?)
} else {
None
};
let rpc_host = if let Some(rpc_host) = matches.value_of("rpc_host") {
Some(
rpc_host
.parse()
.or_else(|_| Err(WalletError::BadParameter("Invalid rpc host".to_string())))?,
)
Some(solana_netutil::parse_host(rpc_host).or_else(|err| {
Err(WalletError::BadParameter(format!(
"Invalid rpc host: {:?}",
err
)))
})?)
} else {
None
};
@ -37,13 +40,23 @@ pub fn parse_args(matches: &ArgMatches<'_>) -> Result<WalletConfig, Box<dyn erro
.value_of("drone_port")
.unwrap()
.parse()
.or_else(|_| Err(WalletError::BadParameter("Invalid drone port".to_string())))?;
.or_else(|err| {
Err(WalletError::BadParameter(format!(
"Invalid drone port: {:?}",
err
)))
})?;
let rpc_port = matches
.value_of("rpc_port")
.unwrap()
.parse()
.or_else(|_| Err(WalletError::BadParameter("Invalid rpc port".to_string())))?;
.or_else(|err| {
Err(WalletError::BadParameter(format!(
"Invalid rpc port: {:?}",
err
)))
})?;
let mut path = dirs::home_dir().expect("home directory");
let id_path = if matches.is_present("keypair") {