<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mullvadvpn/mullvad-cli/src/cmds/bridge.rs, branch decrease-leaks-during-reconnect</title>
<subtitle>The Mullvad VPN client app for desktop and mobile</subtitle>
<id>http://git.waynecole.info/mullvadvpn/atom?h=decrease-leaks-during-reconnect</id>
<link rel='self' href='http://git.waynecole.info/mullvadvpn/atom?h=decrease-leaks-during-reconnect'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/'/>
<updated>2025-07-10T07:37:00Z</updated>
<entry>
<title>Run `cargo fmt`</title>
<updated>2025-07-10T07:37:00Z</updated>
<author>
<name>Sebastian Holmin</name>
<email>sebastian.holmin@mullvad.net</email>
</author>
<published>2025-07-09T14:18:47Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=3fd1c56d397375a494cf9279ed42122de8548579'/>
<id>urn:sha1:3fd1c56d397375a494cf9279ed42122de8548579</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Enable support for creating a custom list with locations</title>
<updated>2025-06-24T12:22:23Z</updated>
<author>
<name>Jonatan Rhodin</name>
<email>jonatan.rhodin@mullvad.net</email>
</author>
<published>2025-06-17T14:55:21Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=14fcbe159ea35ebd4e4d0adebd182e47631335cb'/>
<id>urn:sha1:14fcbe159ea35ebd4e4d0adebd182e47631335cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor `mullvad-relay-selector`</title>
<updated>2024-03-27T10:43:44Z</updated>
<author>
<name>Markus Pettersson</name>
<email>markus.pettersson@mullvad.net</email>
</author>
<published>2024-02-16T15:24:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=707ecf44bd2b21642e51c8b9f5440bc287bcc511'/>
<id>urn:sha1:707ecf44bd2b21642e51c8b9f5440bc287bcc511</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Validate SOCKS5 credentials</title>
<updated>2024-01-12T12:52:19Z</updated>
<author>
<name>Markus Pettersson</name>
<email>markus.pettersson@mullvad.net</email>
</author>
<published>2024-01-11T14:45:51Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=8837083fbc794317ea4d60faf3233c3a40879327'/>
<id>urn:sha1:8837083fbc794317ea4d60faf3233c3a40879327</id>
<content type='text'>
Validate SOCKS credentials by checking that both `username` and
`password` both have a length between 1 and 255 bytes.

Link to RFC detailing SOCKS5 username/password authentication:
https://datatracker.ietf.org/doc/html/rfc1929
</content>
</entry>
<entry>
<title>Allow app to use custom socks5 and shadwosocks proxies</title>
<updated>2024-01-03T13:38:41Z</updated>
<author>
<name>Jonathan</name>
<email>jonathan@mullvad.net</email>
</author>
<published>2023-12-05T09:03:08Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=4fdc34acbba60d5092e45ce3e513d30ec996c317'/>
<id>urn:sha1:4fdc34acbba60d5092e45ce3e513d30ec996c317</id>
<content type='text'>
This PR has a couple of different purposes
    - Allow users to use socks5 local proxies with the CLI without
      having to be root nor use split-tunneling. This only works for
      OpenVPN.
    - Unify the types used by different proxy parts of the codebase,
      such as the Access Methods as well as some already existing
      OpenVPN proxy code.

This PR changes the firewall on all desktop platforms as well as changes
the routing table slightly on MacOS and Windows.
On Linux the firewall code is modified to apply the appropriate firewall
marks to all packages that go to a remote endpoint corresponding to the
remote part of a local socks5 proxy. The firewall marks will allow the
routing to be done without having to modify the routing table.
On MacOS and Windows the routing table is modified to allow packages to
go to that same endpoint to pass outside the VPN tunnel, it will
additionally punch a hole in the firewall.

The PR also migrates the settings file from version 7 to version 8 in order
to properly and neatly unify Proxy related types.

Finally it provides some slight extensions to the gRPC interface in
order to allow for control over the custom proxy settings.
</content>
</entry>
<entry>
<title>Add `resolve_location_constraint` fn</title>
<updated>2023-11-23T14:14:20Z</updated>
<author>
<name>Sebastian Holmin</name>
<email>sebastian.holmin@mullvad.net</email>
</author>
<published>2023-11-17T14:15:41Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=53bbcb266e2328c916a8c3b688198c36ae2b578f'/>
<id>urn:sha1:53bbcb266e2328c916a8c3b688198c36ae2b578f</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Refactor custom list implementation</title>
<updated>2023-09-27T08:25:35Z</updated>
<author>
<name>David Lönnhager</name>
<email>david.l@mullvad.net</email>
</author>
<published>2023-09-20T22:37:07Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=52cdf0bfbed50179b1da5ccad80fa0245a524c1e'/>
<id>urn:sha1:52cdf0bfbed50179b1da5ccad80fa0245a524c1e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement formatter for constraints</title>
<updated>2023-08-21T14:39:49Z</updated>
<author>
<name>David Lönnhager</name>
<email>david.l@mullvad.net</email>
</author>
<published>2023-08-10T16:37:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=58fc8498458003f50e34d4f19296a3d9e014d10d'/>
<id>urn:sha1:58fc8498458003f50e34d4f19296a3d9e014d10d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add settings migration code, refactor and cleanup</title>
<updated>2023-06-29T13:00:10Z</updated>
<author>
<name>Jonathan</name>
<email>jonathan@mullvad.net</email>
</author>
<published>2023-06-28T12:36:24Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=5f61ba4058337e6985cee99661a59a98ebff6dd0'/>
<id>urn:sha1:5f61ba4058337e6985cee99661a59a98ebff6dd0</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Cleanup review comments, CI issues and android support</title>
<updated>2023-06-29T13:00:09Z</updated>
<author>
<name>Jonathan</name>
<email>jonathan@mullvad.net</email>
</author>
<published>2023-06-26T11:21:28Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=b4bf8124fbc30bf891f70f120265f30c490d1244'/>
<id>urn:sha1:b4bf8124fbc30bf891f70f120265f30c490d1244</id>
<content type='text'>
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.
</content>
</entry>
</feed>
