| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The IP of the bridge interface was incorrectly
assumed to be constant, but has at some point
changed. This broke the algorithm for finding
the bridge interface.
Replace the algorithm with one based on the
guest IP, which is given by `tart`. As the bridge
IP is no longer constant, we also expose it through
the `TEST_CONFIG`.
|
|
|
|
|
|
Limit relay selection in
`test_wireguard_over_shadowsocks` to reduce flakiness.
Hopefully this should be able to (at least partially) mitigate timeout
related issues.
|
|
Limit relay selection in `test_multihop` to reduce flakiness.
Hopefully this should be able to (at least partially) mitigate timeout
related issues.
|
|
Limit relay selection in
`test_quantum_resistant_tunnel` to reduce flakiness.
Hopefully this should be able to (at least partially) mitigate timeout
related issues.
|
|
Limit relay selection in
`test_quantum_resistant_multihop_udp2tcp_tunnel` to reduce flakiness.
Hopefully this should be able to (at least partially) mitigate
timeout-related issues.
|
|
Limit relay selection in
`test_quantum_resistant_multihop_shadowsocks_tunnel` to reduce flakiness
Hopefully this should be able to (at least partially) mitigate
timeout-related issues.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
Re-write some code in the test framework to prefer the type safe wrapper
around the Mullvad app gRPC client instead of its auto-generated dito.
`ManagementServiceClient` is automatically generated from the protobuf
definitions found in `management_interface.proto`, and contains some
very crude types. The `MullvadProxyClient` is a type-safe wrapper around
`ManagementServiceClient` which performs conversions & validation of the
data types from the gRPC server (the daemon) to their respective
mappings in the `talpid-*` and `mullvad-*` crates. These types are more
ergonomic to work with, and since we already have the conversions in
place we should prefer those.
|
|
|
|
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.
|
|
test_bridge)
|
|
|
|
We have seen `test_bridge` fail due to high latency if slow + far-away
servers were selected. Hopefully delegating the task of picking
appropriate entry & exit relays will help mitigate this.
|
|
Prefer types from `mullvad-types` over equivavelent types defined in
`mullvad-management-interface`.
|
|
|
|
|
|
|
|
|
|
|
|
Loosen up relay constraints in
`test_quantum_resistant_multihop_udp2tcp_tunnel`, which makes the test
more resilient to changes in the testing environment.
|
|
Co-authored-by: Jonathan <jonathan@mullvad.net>
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
|