maidsafe/qp2p

Duplicate options for short -e and -l

Closed this issue · 1 comments

To reproduce:

$ ./sn_node --help

Notice duplicate short flags in the output:

    -e, --external-ip <external-ip>
            External IP address of the computer on the WAN. This field is mandatory if the node is the genesis node and
            port forwarding is not available. In case of non-genesis nodes, the external IP address will be resolved
            using the Echo service
    -e, --external-port <external-port>
            External port number assigned to the socket address of the program. If this is provided, QP2p considers that
            the local port provided has been mapped to the provided external port number and automatic port forwarding
            will be skipped
...
    -l, --local-ip <local-ip>
            IP address for the listener. If none is supplied and `forward_port` is enabled, we will use IGD to realize
            the local IP address of the machine. If IGD fails the application will exit
    -l, --local-port <local-port>
            Port we want to reserve for QUIC. If none supplied we'll use the OS given random port. If external port is
            provided it means that the user is carrying out manual port forwarding and this field is mandatory. This
            will be the internal port number mapped to the process

The duplicate for -e is here:

qp2p/src/config.rs

Lines 48 to 57 in 353ccfc

/// External port number assigned to the socket address of the program.
/// If this is provided, QP2p considers that the local port provided has been mapped to the
/// provided external port number and automatic port forwarding will be skipped.
#[structopt(short, long)]
pub external_port: Option<u16>,
/// External IP address of the computer on the WAN. This field is mandatory if the node is the genesis node and
/// port forwarding is not available. In case of non-genesis nodes, the external IP address will be resolved
/// using the Echo service.
#[structopt(short, long)]
pub external_ip: Option<IpAddr>,

The duplicate for -l is here:

qp2p/src/config.rs

Lines 35 to 43 in 353ccfc

/// Port we want to reserve for QUIC. If none supplied we'll use the OS given random port.
/// If external port is provided it means that the user is carrying out manual port forwarding and this field is mandatory.
/// This will be the internal port number mapped to the process
#[structopt(short, long)]
pub local_port: Option<u16>,
/// IP address for the listener. If none is supplied and `forward_port` is enabled, we will use IGD to realize the
/// local IP address of the machine. If IGD fails the application will exit.
#[structopt(short, long)]
pub local_ip: Option<IpAddr>,

Note that within node itself there is also this third -l flag:

    -l, --local           
            Is the node running for a local section?

So maybe this is a good option?:

  • -l, --local
  • -i, --local-ip <local-ip>
  • -p --local-port
  • -I, --external-ip <external-ip>
  • -P, --external-port <external-port>

Thanks for this @iancoleman
This has been resolved in #246