summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-12-20 09:56:13 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-12-20 09:56:13 +0100
commit84853aa1cbbe428d150d653567b20c606e9d979b (patch)
treedfd7dfb1cece05a83b7e8c516adcbd956feecaec
parent1ef607dc33e0c1204ac6d9509a074e88d692aa86 (diff)
Let user specify listening addresses
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--cli/src/cli.rs9
-rw-r--r--cli/src/profile.rs13
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);