| Age | Commit message (Collapse) | Author | Files | Lines |
|
Also invert the behavior
|
|
Simplify the logic for feature indicators
|
|
|
|
|
|
Co-authored-by: David Lönnhager <david.l@mullvad.net>
|
|
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.
|
|
|
|
Also regroup networking-related crates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
Breaks backwards compatibility with relays.json (which is acceptable)
|
|
|
|
|
|
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
|
|
This commit also removes the `EventListener` trait and the daemon is no
longer parameterized over it.
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
Gate DAITA compilation on `"cargo::rustc-cfg=daita"` emitted in build
files per platform.
|
|
|
|
- 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
|
|
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.
|
|
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>
|
|
|
|
|
|
|
|
I ran `cargo doc` and fixed as many broken links as I could find.
|
|
|
|
|
|
|
|
|
|
The test was flaky because if a race condition which made the key
rotation missable.
|
|
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.
|
|
|
|
|
|
`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.
|
|
|
|
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.
|
|
|
|
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.
|