summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src/cmds/proxies.rs
AgeCommit message (Collapse)AuthorFilesLines
2025-07-10Run `cargo fmt`Sebastian Holmin1-2/+4
2025-03-18Replace to_owned with clone where that's implicitly what was going onLinus Färnstrand1-2/+2
2024-09-02Run `cargo +nightly clippy --fix`Markus Pettersson1-6/+3
2024-04-22Fix broken lints in rustdocsSebastian Holmin1-7/+7
I ran `cargo doc` and fixed as many broken links as I could find.
2024-04-03Enable single-use-lifetimes rustc lintLinus Färnstrand1-1/+1
Removes superfluous lifetime definitions. Simplifying the code
2024-02-27Replace err_derive with thiserrorJoakim Hulthe1-3/+3
`err_derive` is unmaintained and will probably stop working with rust edition 2024. `thiserror` is almost a drop-in replacement. This commit simply replaces all occurences of `derive(err_derive::Error)` with `derive(thiserror::Error)` and fixes the attributes, but the Error and Display impls should be identical.
2024-01-12Validate SOCKS5 credentialsMarkus Pettersson1-21/+28
Validate SOCKS credentials by checking that both `username` and `password` both have a length between 1 and 255 bytes. Link to RFC detailing SOCKS5 username/password authentication: https://datatracker.ietf.org/doc/html/rfc1929
2024-01-03Allow app to use custom socks5 and shadwosocks proxiesJonathan1-0/+214
This PR has a couple of different purposes - Allow users to use socks5 local proxies with the CLI without having to be root nor use split-tunneling. This only works for OpenVPN. - Unify the types used by different proxy parts of the codebase, such as the Access Methods as well as some already existing OpenVPN proxy code. This PR changes the firewall on all desktop platforms as well as changes the routing table slightly on MacOS and Windows. On Linux the firewall code is modified to apply the appropriate firewall marks to all packages that go to a remote endpoint corresponding to the remote part of a local socks5 proxy. The firewall marks will allow the routing to be done without having to modify the routing table. On MacOS and Windows the routing table is modified to allow packages to go to that same endpoint to pass outside the VPN tunnel, it will additionally punch a hole in the firewall. The PR also migrates the settings file from version 7 to version 8 in order to properly and neatly unify Proxy related types. Finally it provides some slight extensions to the gRPC interface in order to allow for control over the custom proxy settings.