diff --git a/implementations/rust/ockam/ockam_command/src/relay/create.rs b/implementations/rust/ockam/ockam_command/src/relay/create.rs index 04e01840947..917d0491531 100644 --- a/implementations/rust/ockam/ockam_command/src/relay/create.rs +++ b/implementations/rust/ockam/ockam_command/src/relay/create.rs @@ -37,7 +37,7 @@ pub struct CreateCommand { to: String, /// Route to the node at which to create the relay (optional) - #[arg(long, id = "ROUTE", display_order = 900, default_value_t = default_forwarder_at())] + #[arg(long, id = "ROUTE", display_order = 900, value_parser = parse_at, default_value_t = default_forwarder_at())] at: MultiAddr, /// Authorized identity for secure channel connection (optional) @@ -51,6 +51,17 @@ impl CreateCommand { } } +fn parse_at(input: &str) -> Result { + let mut at = input.to_string(); + if !input.contains('/') { + at = format!("/node/{}", input); + } + + let ma = MultiAddr::from_str(&at)?; + + Ok(ma) +} + pub fn default_forwarder_at() -> MultiAddr { MultiAddr::from_str("/project/default").expect("Default relay address is invalid") }