| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
|
|
The 2024 edition contains new formatting rules.
All of these are not compatible with the 2021
formatting style, but most of them are.
To change the formatting to be as close to the
new style as possible while remaining compatible
with the 2021 edition, I first ran
`cargo +beta fmt` with the edition set to 2024,
then, with the edition set to 2021, I ran
`cargo fmt`.
|
|
|
|
|
|
|
|
|
|
Breaks backwards compatibility with relays.json (which is acceptable)
|
|
Gate DAITA compilation on `"cargo::rustc-cfg=daita"` emitted in build
files per platform.
|
|
|
|
|
|
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.
|
|
The command
`relay set tunnel wireguard entry-location` is replaced with
`relay set tunnel wireguard entry location` and
`relay set tunnel wireguard custom-list` is replaced with
`relay set tunnel wireguard entry custom-list`.
This is intended to communicate that the `custom-list` also affects
the entry relay and are mutually exclusive.
|
|
The fn exists and returns error on hostname having wrong server type.
Allow any host in custom-lists, only the currently configured tunnel
protocol for `relay set location`, only bridges for the `bridge`
subcommand and only wireguard servers in for the `wireguard` entry
command.
Reduce repeated init of rpc client
Refactor inconsistent filtering on hostname
|
|
Refactor: Unwrap result return type
Refactor: for loop to iter map
|
|
|
|
|
|
|
|
|
|
|
|
To be able to more easily re-use `get_filtered_relays` from other
modules, such as `custom_lists`, the function was to the module level.
|
|
|
|
|
|
Bump the settings version. Add code for migrating settings to new
version since it is now not backwards compatible.
Refactor LocationConstraint and related types to be more lean.
Cleanup issues and fix formatting.
Refactor LocationConstraint and add migration code
|
|
Add necessary android support to allow it to not crash due to interface
changes. Format the code, remove redundant async functions, fix android issues
related to not having to use a Vec to store the custom lists and a
string as an id. Fix unit tests.
|
|
Create the basic features outside of rename for custom lists and route
these to the daemon. Persist custom lists in settings.
Has basic custom list features done, adds errors.
Adds reconnect in the case where a selected custom list is modified.
|
|
Add the same location constraint logic as `relay set location` to the
bridge location constraint for the `bridge set location` command. This
implies that the relay selection for both work in the same way.
|
|
|
|
Add the same location constraint logic as `relay set location` to the
entry location constraint for multihop. This implies that the relay
selection for both work in the same way.
|
|
The `set location` command now takes a hostname and figures the country
and city out. This is identical to how the (now deprecated) `mullvad
relay set hostname` used to work.
The `set location` command will try to resolve country code first, but
if that fails we now fall back to trying to resolve a relay by hostname
first.
Update the help message (long & short) to cover this new use case.
|
|
|
|
|
|
|
|
|
|
|
|
the builder
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is a giant commit which performs only a clippy --fix.
Auditing can happen in two ways, either by reading every line or by
running a `cargo clippy --fix` on the previous commit and make sure that
the result is the same.
|
|
|
|
|