| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2025-10-22 | Add entry and exit no relay errors | Jonatan Rhodin | 2 | -40/+57 | |
| The old no relay error is still kept for single hop | |||||
| 2025-10-21 | Add support for multihop entry filters in daemon | Kalle Lindström | 2 | -2/+38 | |
| 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-09 | Enable lwo in the relay selector | Jonatan Rhodin | 1 | -1/+0 | |
| 2025-10-02 | Enable quic in the relay selector for android | Jonatan Rhodin | 1 | -1/+0 | |
| 2025-10-02 | Append LWO to retry order | David Lönnhager | 1 | -0/+3 | |
| 2025-09-30 | Add relay list selector test for LWO | David Lönnhager | 1 | -0/+22 | |
| 2025-09-30 | Add LWO relay list feature and filtering | David Lönnhager | 2 | -6/+5 | |
| 2025-09-25 | Select random in-address for QUIC | David Lönnhager | 2 | -5/+7 | |
| 2025-09-23 | Upgrade `rand` to `0.9` in `mullvad-relay-selector` | Markus Pettersson | 2 | -11/+10 | |
| 2025-09-18 | Add documentation for multiplexer obfuscation | David Lönnhager | 1 | -3/+10 | |
| 2025-09-18 | Add multiplexer POC to daemon, TSM, and relay selector | David Lönnhager | 2 | -19/+93 | |
| 2025-09-18 | Ignore IP version constraint for OpenVPN | David Lönnhager | 1 | -0/+3 | |
| 2025-09-15 | Add LWO obfuscator | David Lönnhager | 4 | -0/+30 | |
| 2025-09-10 | Add fallback to relay selector | Sebastian Holmin | 1 | -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-10 | Refactor relay selector fn | Sebastian Holmin | 1 | -42/+23 | |
| 2025-09-10 | Add offending query to relay select err | Sebastian Holmin | 2 | -13/+14 | |
| 2025-08-22 | Do not filter out all OpenVPN relays when QUIC is enabled | David Lönnhager | 1 | -12/+13 | |
| 2025-08-19 | Disregard `include_in_country` flag when needed | Markus Pettersson | 2 | -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-18 | Fail if QUIC address set is empty | David Lönnhager | 1 | -12/+7 | |
| 2025-08-18 | Filter out relays without QUIC endpoint for selected IP version | David Lönnhager | 1 | -1/+13 | |
| 2025-08-14 | Set relay to current country on first start | Kalle Lindström | 1 | -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-11 | Add e2e test `test_wireguard_over_quic` for QUIC obfuscation method | Markus Pettersson | 1 | -1/+1 | |
| 2025-07-23 | Refactor Relay protobuf type | Markus Pettersson | 2 | -18/+17 | |
| Remove the dependency on google/protobuf/any.proto. | |||||
| 2025-07-16 | Remove QUIC obfuscation from automatic retry order on Android | Markus Pettersson | 1 | -0/+1 | |
| 2025-07-10 | Run `cargo fmt` | Sebastian Holmin | 5 | -19/+25 | |
| 2025-07-09 | Add support for QUIC in the relay selector | Markus Pettersson | 4 | -17/+56 | |
| Parse new 'features' key from relay list API, and add Quic obfuscation to automatic retry order | |||||
| 2025-06-24 | Enable support for creating a custom list with locations | Jonatan Rhodin | 1 | -1/+1 | |
| 2025-06-09 | Add `AllowedIps` setting to CLI | Sebastian Holmin | 3 | -9/+24 | |
| 2025-05-08 | Add QUIC obfuscation to mullvad daemon and management interface | David Lönnhager | 2 | -0/+18 | |
| 2025-04-09 | Improve error message when an unavailable ip version is selected | Jonatan Rhodin | 2 | -11/+18 | |
| 2025-03-25 | Avoid using an unavailable ip version to connect to a relay | Jonatan Rhodin | 3 | -57/+42 | |
| Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net> | |||||
| 2025-03-18 | Replace to_owned with clone where that's implicitly what was going on | Linus Färnstrand | 1 | -4/+1 | |
| 2025-03-13 | Remove "Any" tunnel protocol from query builder | Sebastian Holmin | 2 | -48/+32 | |
| 2025-03-05 | Remove automatic tunnel type | David Lönnhager | 4 | -108/+72 | |
| Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net> | |||||
| 2025-02-24 | Make `filter_matching_relay_list` public | Sebastian Holmin | 3 | -51/+57 | |
| 2024-11-22 | Enable Multihop on Android in the relay selector | Markus Pettersson | 1 | -6/+0 | |
| 2024-11-20 | Add consuming getters for constraints on queries | Sebastian Holmin | 1 | -3/+10 | |
| 2024-11-14 | Improve error message | Sebastian Holmin | 1 | -1/+1 | |
| 2024-11-14 | Move constructor for `SelectorConfig` to `mullvad-types` | Sebastian Holmin | 1 | -0/+34 | |
| 2024-11-12 | Generalize `entry` and `location` functions of relay query builder API | Markus Pettersson | 1 | -5/+4 | |
| 2024-11-05 | Use weighted random picker also for multihop | Sebastian Holmin | 2 | -12/+9 | |
| 2024-10-31 | Do not fallback to direct API connections when testing access methods | Markus Pettersson | 2 | -8/+14 | |
| 2024-10-18 | Run nightly formatter | Markus Pettersson | 5 | -38/+44 | |
| 2024-10-18 | Add test case for smart routing overriding multihop | Markus Pettersson | 1 | -1/+3 | |
| 2024-10-18 | Do not use multihop on Android (yet) | Markus Pettersson | 1 | -1/+6 | |
| 2024-10-18 | Remove superflous function | Markus Pettersson | 1 | -37/+22 | |
| 2024-10-18 | Add missing docs | Markus Pettersson | 1 | -16/+25 | |
| 2024-10-18 | Define the trait `RelayQueryExtensions` for grouping common methods | Markus Pettersson | 2 | -26/+31 | |
| 2024-10-18 | Make smart routing take precedence over multihop | Markus Pettersson | 1 | -8/+22 | |
| If both multihop and DAITA (with smart routing) is enabled, a DAITA-compatible entry relay will be selected. This implies that if the user has selected an entry relay which is not DAITA-enabled, the relay selector will override this choice and force a DAITA-enabled relay as entry. If smart routing is disabled in this case, the user's selected entry will always be selected, even if this means that the user will end up in a blocked state. | |||||
| 2024-10-18 | Refactor smart routing logic a bit | Markus Pettersson | 1 | -42/+42 | |
