summaryrefslogtreecommitdiffhomepage
path: root/mullvad-relay-selector/tests
AgeCommit message (Collapse)AuthorFilesLines
2025-10-21Add support for multihop entry filters in daemonKalle Lindström1-0/+81
In the upcoming re-design of select location, separate sets of filters can now be picked for the entry and the exit relays. This commit adds support for that in the relay selector. In order to not affect the current behavior of the desktop and Android apps before the new UI is implemented, the entry filters are set to the same as the exit filters when the relay settings are updated via gRPC.
2025-10-09Enable lwo in the relay selectorJonatan Rhodin1-1/+0
2025-10-02Enable quic in the relay selector for androidJonatan Rhodin1-1/+0
2025-10-02Append LWO to retry orderDavid Lönnhager1-0/+3
2025-09-30Add relay list selector test for LWODavid Lönnhager1-1/+28
2025-09-18Add multiplexer POC to daemon, TSM, and relay selectorDavid Lönnhager1-10/+11
2025-09-18Add WG over IPv6 testDavid Lönnhager1-0/+31
2025-09-15Add LWO obfuscatorDavid Lönnhager1-1/+2
2025-08-22Add regression test for enabling both OpenVPN and QUICDavid Lönnhager1-0/+13
2025-08-19Reproduce failing scenario as unit testMarkus Pettersson1-0/+94
Add a test case demonstrating an absurd scenario where the relay selector is unable to select a proper circuit even though it should be able to resolve a valid multihop configuration.
2025-08-18Fail if QUIC address set is emptyDavid Lönnhager1-1/+2
2025-07-23Refactor Relay protobuf typeMarkus Pettersson1-83/+47
Remove the dependency on google/protobuf/any.proto.
2025-07-16Remove QUIC obfuscation from automatic retry order on AndroidMarkus Pettersson1-0/+1
2025-07-10Run `cargo fmt`Sebastian Holmin1-50/+80
2025-07-09Add support for QUIC in the relay selectorMarkus Pettersson1-7/+53
Parse new 'features' key from relay list API, and add Quic obfuscation to automatic retry order
2025-07-09Inline format argumentsLinus Färnstrand1-2/+2
2025-07-09Use std::iter::repeat_nLinus Färnstrand1-2/+1
2025-05-08Add QUIC obfuscation to mullvad daemon and management interfaceDavid Lönnhager1-2/+3
2025-03-25Avoid using an unavailable ip version to connect to a relayJonatan Rhodin1-10/+81
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
2025-03-13Remove "Any" tunnel protocol from query builderSebastian Holmin1-113/+57
2025-03-05Remove automatic tunnel typeDavid Lönnhager1-107/+99
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2024-10-18Run nightly formatterMarkus Pettersson1-2/+2
2024-10-18Add test case for smart routing overriding multihopMarkus Pettersson1-0/+74
2024-10-07Replace `smart_routing` with `use_multihop_if_necessary` in daemonSebastian Holmin1-10/+10
Simplify the logic for feature indicators
2024-09-17Align Smart routing GUI with design specJoakim Hulthe1-10/+10
2024-09-17Add unit test for daita_use_anywhere with singlehopJoakim Hulthe1-1/+23
2024-09-17Fix relay_selector daita testsJoakim Hulthe1-1/+31
2024-09-17Remove Option from Relay::locationJoakim Hulthe1-10/+20
2024-09-02Replace footgunny From implementations for RelayQueryDavid Lönnhager1-3/+4
2024-08-28Filter out OpenVPN relays when a core privacy feature is enabledDavid Lönnhager1-126/+134
Core privacy features currently include PQ, multihop, and DAITA
2024-08-27Use std LazyLock instead of once_cell LazyDavid Lönnhager1-5/+5
2024-08-27Add Shadowsocks to retry orderDavid Lönnhager1-5/+7
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
2024-08-22Improve IP override testingSebastian Holmin1-2/+7
2024-08-22Fix IP-override feature indicatorSebastian Holmin1-2/+28
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-16Use range types for all port rangesDavid Lönnhager1-14/+14
Breaks backwards compatibility with relays.json (which is acceptable)
2024-08-16Add tests for ShadowsocksDavid Lönnhager1-7/+174
2024-08-16Add Shadowsocks obfuscation support to mullvad-daemonDavid Lönnhager1-4/+11
2024-08-16Parse shadowsocks ports in relay listDavid Lönnhager1-0/+6
2024-07-30Ignore obfuscation protocol specific constraints when 'auto' is selectedDavid Lönnhager1-11/+9
2024-04-17Add testSebastian Holmin1-0/+27
2024-04-16Add DAITA relay selection testsDavid Lönnhager1-4/+177
2024-04-16Add DAITA to relay selectionDavid Lönnhager1-4/+4
2024-04-16Add DAITA Windows client and updated tuncfgDavid Lönnhager1-0/+6
2024-04-04Format docstringsMarkus Pettersson1-18/+25
2024-03-27Refactor `mullvad-relay-selector`Markus Pettersson1-0/+1112
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.