diff options
Diffstat (limited to 'mullvad-cli')
| -rw-r--r-- | mullvad-cli/src/cmds/proxy.rs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/mullvad-cli/src/cmds/proxy.rs b/mullvad-cli/src/cmds/proxy.rs index 74e0e22c22..507d5fa46d 100644 --- a/mullvad-cli/src/cmds/proxy.rs +++ b/mullvad-cli/src/cmds/proxy.rs @@ -130,9 +130,10 @@ impl Proxy { let port = cmd.params.port.unwrap_or(shadowsocks.peer.port()); let password = cmd.params.password.unwrap_or(shadowsocks.password); let cipher = cmd.params.cipher.unwrap_or(shadowsocks.cipher); + let name = cmd.params.name.unwrap_or(shadowsocks.name); let enabled = shadowsocks.enabled; mullvad_types::api_access_method::Shadowsocks::from_args( - ip, port, cipher, password, enabled, + ip, port, cipher, password, enabled, name, ) .map(|x| x.into()) } @@ -141,18 +142,22 @@ impl Proxy { let ip = cmd.params.ip.unwrap_or(local.peer.ip()).to_string(); let port = cmd.params.port.unwrap_or(local.peer.port()); let local_port = cmd.params.local_port.unwrap_or(local.port); + let name = cmd.params.name.unwrap_or(local.name); let enabled = local.enabled; mullvad_types::api_access_method::Socks5Local::from_args( - ip, port, local_port, enabled, + ip, port, local_port, enabled, name, ) .map(|x| x.into()) } mullvad_types::api_access_method::Socks5::Remote(remote) => { let ip = cmd.params.ip.unwrap_or(remote.peer.ip()).to_string(); let port = cmd.params.port.unwrap_or(remote.peer.port()); + let name = cmd.params.name.unwrap_or(remote.name); let enabled = remote.enabled; - mullvad_types::api_access_method::Socks5Remote::from_args(ip, port, enabled) - .map(|x| x.into()) + mullvad_types::api_access_method::Socks5Remote::from_args( + ip, port, enabled, name, + ) + .map(|x| x.into()) } }, } @@ -207,6 +212,8 @@ pub enum AddCustomCommands { /// Configure bundled Shadowsocks proxy Shadowsocks { + /// An easy to remember name for this custom proxy + name: String, /// The IP of the remote Shadowsocks server remote_ip: IpAddr, /// The port of the remote Shadowsocks server @@ -246,6 +253,8 @@ pub struct RemoveCustomCommands { pub enum Socks5AddCommands { /// Configure a local SOCKS5 proxy Local { + /// An easy to remember name for this custom proxy + name: String, /// The port that the server on localhost is listening on local_port: u16, /// The IP of the remote peer @@ -255,6 +264,8 @@ pub enum Socks5AddCommands { }, /// Configure a remote SOCKS5 proxy Remote { + /// An easy to remember name for this custom proxy + name: String, /// The IP of the remote proxy server remote_ip: IpAddr, /// The port of the remote proxy server @@ -270,6 +281,9 @@ pub enum Socks5AddCommands { #[derive(Args, Debug, Clone)] pub struct EditParams { + /// Name of the API proxy in the Mullvad client [All] + #[arg(long)] + name: Option<String>, /// Username for authentication [Shadowsocks] #[arg(long)] username: Option<String>, @@ -312,6 +326,7 @@ mod conversions { local_port, remote_ip, remote_port, + name, } => { println!("Adding LOCAL SOCKS5-proxy: localhost:{local_port} => {remote_ip}:{remote_port}"); let socks_proxy = daemon_types::Socks5::Local( @@ -320,6 +335,7 @@ mod conversions { remote_port, local_port, enabled, + name, ) .ok_or(anyhow!("Could not create a local Socks5 api proxy"))?, ); @@ -330,6 +346,7 @@ mod conversions { remote_port, username, password, + name, } => { println!("Adding REMOTE SOCKS5-proxy: {username:?}+{password:?} @ {remote_ip}:{remote_port}"); let socks_proxy = daemon_types::Socks5::Remote( @@ -337,6 +354,7 @@ mod conversions { remote_ip.to_string(), remote_port, enabled, + name, ) .ok_or(anyhow!("Could not create a remote Socks5 api proxy"))?, ); @@ -348,6 +366,7 @@ mod conversions { remote_port, password, cipher, + name, } => { println!( "Adding Shadowsocks-proxy: {password} @ {remote_ip}:{remote_port} using {cipher}" @@ -358,6 +377,7 @@ mod conversions { cipher, password, enabled, + name, ) .ok_or(anyhow!("Could not create a Shadowsocks api proxy"))?; shadowsocks_proxy.into() |
