summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2023-09-18 15:30:50 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-10-09 14:40:05 +0200
commitbe3da7e67723c96bdb997fb6e7dcbfebc036919d (patch)
treeabc92e3df83eee6d40227876e65e4d7090bf9c1d /mullvad-cli
parentb66d4bf941cba35375fb6c3ae1665546d0a16d12 (diff)
downloadmullvadvpn-be3da7e67723c96bdb997fb6e7dcbfebc036919d.tar.xz
mullvadvpn-be3da7e67723c96bdb997fb6e7dcbfebc036919d.zip
Add naming custom access methods
Just a bookkeeping feature for the end user
Diffstat (limited to 'mullvad-cli')
-rw-r--r--mullvad-cli/src/cmds/proxy.rs28
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()