summaryrefslogtreecommitdiffhomepage
path: root/mullvad-management-interface
AgeCommit message (Collapse)AuthorFilesLines
2024-10-07Rename "smart routing" to "direct only" in the APISebastian Holmin4-10/+8
Also invert the behavior
2024-10-07Replace `smart_routing` with `use_multihop_if_necessary` in daemonSebastian Holmin3-7/+6
Simplify the logic for feature indicators
2024-10-04Remove setting to leak traffic to apple networksDavid Lönnhager2-11/+0
2024-10-01Rename account "token" to account "number"Joakim Hulthe3-18/+18
2024-09-25Add setting to leak traffic to apple networksJoakim Hulthe2-0/+11
Co-authored-by: David Lönnhager <david.l@mullvad.net>
2024-09-25Upgrade `tonic` to 0.12 and `prost` to 0.13Sebastian Holmin2-1/+4
Upgrading `tonic` is a prerequisite to later on upgrading `hyper` to version 1.0. As of version 1.0, `hyper` no longer uses `tokio`s `AsyncWriter` and `AsyncReader` traits, instead defining its own versions, see <https://github.com/hyperium/hyper/issues/3110>. As tonic `0.12` is updated to use the `hyper 1.0` ecosystem, it changed some of its trait-bounds to the new `hyper` traits. The `hyper-utils` crate provides the wrapper `TokioIo`, which converts between the two. `prost` had to be upgraded as well, for compatibility.
2024-09-25Add `futures` to workspace dependenciesSebastian Holmin1-1/+1
2024-09-25Add `parity-tokio-ipc` to workspace dependenciesSebastian Holmin1-2/+3
Also regroup networking-related crates
2024-09-17Align Smart routing GUI with design specJoakim Hulthe4-9/+9
2024-09-17Add daita.enabled and daita.use_anywhere rpc callsJoakim Hulthe2-0/+17
2024-09-17Remove Option from Relay::locationJoakim Hulthe1-15/+19
2024-09-17Add `use_anywhere` feature indicatorJoakim Hulthe2-0/+3
2024-09-17Add `use_anywhere` daita settingJoakim Hulthe2-1/+6
2024-09-06Build wg with daita support for androidAlbin2-7/+3
2024-08-27Use std LazyLock instead of once_cell LazyDavid Lönnhager2-4/+3
2024-08-22Fix IP-override feature indicatorSebastian Holmin1-0/+2
It was trigger by any overrides existing in the settings, not by the current endpoint being overridden. Add flag to `Relay` to specify if its IPv4 and/or IPv6 has been overridden and use that in combination with the endpoint IP version to derive if the current connection is overridden.
2024-08-21Add unit test for feature indicatorSebastian Holmin1-1/+1
2024-08-16Add Shadowsocks feature indicatorDavid Lönnhager3-17/+28
2024-08-16Use range types for all port rangesDavid Lönnhager1-22/+21
Breaks backwards compatibility with relays.json (which is acceptable)
2024-08-16Add Shadowsocks obfuscation support to mullvad-daemonDavid Lönnhager3-19/+69
2024-08-16Parse shadowsocks ports in relay listDavid Lönnhager2-5/+49
2024-08-14Redo error handling `test_automatic_wireguard_rotation`Markus Pettersson1-3/+3
Make the following changes: - Propagate the device error instead of throwing away the error information by transforming it into an `Option`. - Increase daemon restart timeout - Convert catch-all arm to exhaustive check
2024-08-06Shut down gRPC server gracefullyMarkus Pettersson1-2/+6
This commit also removes the `EventListener` trait and the daemon is no longer parameterized over it.
2024-08-01Implement feature indicators in daemonJoakim Hulthe5-18/+138
- Add a GetFeatureIndicators gRPC call that get's the current set of active "features" that should be shown in the UI. - Extend the TunnelState with a FeatureIndicators value. Clients who listens for TunnelState events will get updates automatically.
2024-07-31Add ResetSettings RPC to the management interfaceDavid Lönnhager2-0/+6
2024-07-30Reconnect if split tunnel state changedMarkus Pettersson1-1/+5
2024-07-26Fix `doc list item missing indentation`Sebastian Holmin1-1/+1
2024-06-26Enable DAITA on macOSDavid Lönnhager1-2/+2
2024-06-25Add `daita` as a Cargo cfg variableMarkus Pettersson6-11/+19
Gate DAITA compilation on `"cargo::rustc-cfg=daita"` emitted in build files per platform.
2024-06-25Enable DAITA for linux in CLI and typesSebastian Holmin5-11/+11
2024-06-20Add `PrepareRestartv2` gRPC callMarkus Pettersson2-0/+18
- Add option to automatically shutdown daemon on after running through the same safety routine as `PrepareRestart`. This is exposed via a new gRPC call called `PrepareRestartV2`. - Add help text for enabling full disk access to the CLI
2024-06-17Get value of data directory value at app startupMarkus Pettersson2-12/+31
Remove `APP_PATH` from `mullvad-paths` on Android since it should not be a constant value. Instead, it is passed down from the Android app startup. As it turns out, it is really ever used for pointing to the RPC socket in use.
2024-05-29Migrate to gRPCDavid Göransson4-25/+67
Co-authored-by: Jonatan Rhodin <jonatan.rhodin@mullvad.net> Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net> Co-authored-by: David Lönnhager <david.l@mullvad.net>
2024-05-29Add error state cause for full disk permissions errorDavid Lönnhager2-1/+10
2024-04-30Add initial split tunneling implementation for macOSDavid Lönnhager3-7/+7
2024-04-25Fix chrono deprecation warningsJoakim Hulthe3-25/+26
2024-04-22Fix broken lints in rustdocsSebastian Holmin2-10/+3
I ran `cargo doc` and fixed as many broken links as I could find.
2024-04-18Limit the size of custom list names to 30 graphemesEmīls1-0/+1
2024-04-16Add DAITA Windows client and updated tuncfgDavid Lönnhager7-1/+60
2024-04-12Add ClearCustomLists RPC callJoakim Hulthe2-0/+10
2024-04-12Add ClearCustomApiAccessMethods rpc callJoakim Hulthe2-0/+10
2024-04-11Fix wireguard rotation testSebastian Holmin1-2/+2
The test was flaky because if a race condition which made the key rotation missable.
2024-03-27Refactor `mullvad-relay-selector`Markus Pettersson1-3/+2
Implement a system built on 'queries' for selecting appropriate relays. A query is a set of constraints which dictates which relay(s) that *can* be chosen by the relay selector. The user's settings can naturally be expressed as a query. The semantics of merging two queries in a way that always prefer user settings is defined by the new `Intersection` trait. Split `mullvad-relay-selector` into several modules: - `query.rs`: Definition of a query on different types of relays. This module is integral to the new API of `mullvad-relay-selector` - `matcher.rs`: Logic for filtering out candidate relays based on a query. - `detailer.rs`: Logic for deriving connection details for the selected relay. - `tests/`: Integration tests for the new relay selector. These tests only use the public APIs of `RelaySelector` and make sure that the output matches the expected output in different scenarios.
2024-03-20Test leaking TCP/UDP/ICMP packets in split tunnelJoakim Hulthe1-8/+0
2024-03-20Add split tunnel test for windowsJoakim Hulthe1-5/+4
2024-02-27Replace err_derive with thiserrorJoakim Hulthe3-38/+37
`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-02-06tonic_build::compile_protos() automatically prints rerun-if-changedAndrej Mihajlov1-3/+1
2024-01-31Change API access methods settings formatMarkus Pettersson4-29/+48
Change API access methods settings format to encode that built-in access methods always exist by making them distinct values of the `AccessMethod` settings. This change was also propagated to the corresponding protobuf definition, such that any client may make use of this fact as well. The appropriate settings migration was added.
2024-01-31Add tunnel creation error on WindowsDavid Lönnhager2-4/+30
2024-01-22Add `TestCustomApiAccessMethod` RPC callMarkus Pettersson3-30/+19
Add a new RPC call `TestCustomApiAccessMethod` for testing access methods on the fly, without having to save them to the daemon settings first. This only works for custom access methods.