summaryrefslogtreecommitdiffhomepage
path: root/mullvad-relay-selector
AgeCommit message (Collapse)AuthorFilesLines
2025-10-22Add entry and exit no relay errorsJonatan Rhodin2-40/+57
The old no relay error is still kept for single hop
2025-10-21Add support for multihop entry filters in daemonKalle Lindström3-2/+119
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 Rhodin2-2/+0
2025-10-02Enable quic in the relay selector for androidJonatan Rhodin2-2/+0
2025-10-02Append LWO to retry orderDavid Lönnhager2-0/+6
2025-09-30Add relay list selector test for LWODavid Lönnhager2-1/+50
2025-09-30Add LWO relay list feature and filteringDavid Lönnhager2-6/+5
2025-09-25Select random in-address for QUICDavid Lönnhager2-5/+7
2025-09-23Upgrade `rand` to `0.9` in `mullvad-relay-selector`Markus Pettersson3-12/+11
2025-09-18Add documentation for multiplexer obfuscationDavid Lönnhager1-3/+10
2025-09-18Add multiplexer POC to daemon, TSM, and relay selectorDavid Lönnhager4-29/+108
2025-09-18Add WG over IPv6 testDavid Lönnhager1-0/+31
2025-09-18Ignore IP version constraint for OpenVPNDavid Lönnhager1-0/+3
2025-09-15Add LWO obfuscatorDavid Lönnhager5-1/+32
2025-09-10Add fallback to relay selectorSebastian Holmin1-17/+19
Make the relay selection disregard retry order if the user's preferences are incompatible with all queries in the retry order.
2025-09-10Refactor relay selector fnSebastian Holmin1-42/+23
2025-09-10Add offending query to relay select errSebastian Holmin2-13/+14
2025-08-22Do not filter out all OpenVPN relays when QUIC is enabledDavid Lönnhager1-12/+13
2025-08-22Add regression test for enabling both OpenVPN and QUICDavid Lönnhager1-0/+13
2025-08-19Disregard `include_in_country` flag when neededMarkus Pettersson2-37/+90
In an edge case where there are very few relays to choose from and the location constraint is a country for both the exit and entry, the `include_in_country` could filter out too many relays to be able to pick a working multihop circuit. Opportunistically filter based on the `include_in_country` flag. If the relay selector fails to select a valid multihop circuit, try to filter relays without considering the `include_in_country` flag.
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önnhager3-13/+10
2025-08-18Filter out relays without QUIC endpoint for selected IP versionDavid Lönnhager1-1/+13
2025-08-14Set relay to current country on first startKalle Lindström1-0/+5
Sets the default relay selection to the current country (as determined by am.i.mullvad.net). If the current country does not have any relays the country with the closest relay is choosen instead. In non-release builds of the Android app we do not bundle a relay list in the APK, and the relay list is fetched when the user logs in. So one of the following can happen: 1. Geolocation request returns, we have a relay list. 2. Geolocation request returns, we do not yet have a relay list. 3. Relay list request returns, we have a geolocation. 4. Relay list request returns, we do not have a geolocation. In 1. and 3. we can update the default location. In 2. we have to wait until the relay list is fetched from the api until we can update the default location. 4. is unlikely to happen but could happen if am.i.mullvad is down.
2025-08-11Add e2e test `test_wireguard_over_quic` for QUIC obfuscation methodMarkus Pettersson1-1/+1
2025-07-23Refactor Relay protobuf typeMarkus Pettersson3-101/+64
Remove the dependency on google/protobuf/any.proto.
2025-07-16Remove QUIC obfuscation from automatic retry order on AndroidMarkus Pettersson2-0/+2
2025-07-10Run `cargo fmt`Sebastian Holmin6-69/+105
2025-07-09Add support for QUIC in the relay selectorMarkus Pettersson5-24/+109
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-06-24Enable support for creating a custom list with locationsJonatan Rhodin1-1/+1
2025-06-16Add offline mode for installer loader on WindowsMarkus Pettersson1-1/+1
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net> Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net> Co-authored-by: David Lönnhager <david.l@mullvad.net>
2025-06-09Add `AllowedIps` setting to CLISebastian Holmin3-9/+24
2025-05-08Add QUIC obfuscation to mullvad daemon and management interfaceDavid Lönnhager3-2/+21
2025-04-09Improve error message when an unavailable ip version is selectedJonatan Rhodin2-11/+18
2025-03-25Avoid using an unavailable ip version to connect to a relayJonatan Rhodin4-67/+123
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
2025-03-18Replace to_owned with clone where that's implicitly what was going onLinus Färnstrand1-4/+1
2025-03-13Remove "Any" tunnel protocol from query builderSebastian Holmin3-161/+89
2025-03-05Remove automatic tunnel typeDavid Lönnhager5-215/+171
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2025-02-24Make `filter_matching_relay_list` publicSebastian Holmin3-51/+57
2024-11-22Enable Multihop on Android in the relay selectorMarkus Pettersson1-6/+0
2024-11-20Add consuming getters for constraints on queriesSebastian Holmin1-3/+10
2024-11-14Improve error messageSebastian Holmin1-1/+1
2024-11-14Move constructor for `SelectorConfig` to `mullvad-types`Sebastian Holmin1-0/+34
2024-11-12Generalize `entry` and `location` functions of relay query builder APIMarkus Pettersson1-5/+4
2024-11-05Use weighted random picker also for multihopSebastian Holmin2-12/+9
2024-10-31Do not fallback to direct API connections when testing access methodsMarkus Pettersson2-8/+14
2024-10-18Run nightly formatterMarkus Pettersson6-40/+46
2024-10-18Add test case for smart routing overriding multihopMarkus Pettersson2-1/+77