diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-12-20 09:56:13 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-12-20 09:56:13 +0100 |
commit | 84853aa1cbbe428d150d653567b20c606e9d979b (patch) | |
tree | dfd7dfb1cece05a83b7e8c516adcbd956feecaec | |
parent | 1ef607dc33e0c1204ac6d9509a074e88d692aa86 (diff) |
Let user specify listening addresses
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | cli/src/cli.rs | 9 | ||||
-rw-r--r-- | cli/src/profile.rs | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 4b0b0f5..4b52ad6 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -50,6 +50,15 @@ pub fn app<'a>() -> App<'a> { .value_name("MULTIADDR") .about("Connect to MULTIADDR as well") ) + + .arg(Arg::new("listen") + .long("listen") + .required(false) + .takes_value(true) + .multiple(true) + .value_name("MULTIADDR") + .about("Listen on MULTIADDR, e.g. '/ip4/127.0.0.1/tcp/10000'") + ) ) .subcommand(App::new("cat") diff --git a/cli/src/profile.rs b/cli/src/profile.rs index c239bc5..7ca324b 100644 --- a/cli/src/profile.rs +++ b/cli/src/profile.rs @@ -36,6 +36,12 @@ async fn profile_serve(matches: &ArgMatches) -> Result<()> { use ipfs::MultiaddrWithPeerId; let name = matches.value_of("name").map(String::from).unwrap(); // required + let listen_addrs = matches.values_of("listen") + .map(|v| { + v.map(|s| s.parse::<ipfs::Multiaddr>().map_err(anyhow::Error::from)) + .collect::<Result<Vec<_>>>() + }) + .transpose()?; let connect_peer = matches.values_of("connect") .map(|v| { v.map(|s| { @@ -54,6 +60,13 @@ async fn profile_serve(matches: &ArgMatches) -> Result<()> { log::info!("Profile HEAD = {}", head); } + if let Some(listen) = listen_addrs { + for l in listen { + log::debug!("Adding listening address: {}", l); + profile.listen_on(l).await?; + } + } + if let Some(connect_to) = connect_peer { for c in connect_to { log::info!("Connecting to {:?}", c); |