| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
The patch for handling shut down sockets is included
|
|
This includes a function to clear connection states
|
|
|
|
|
|
|
|
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.
|
|
We should avoid depending on git repositories outside our own control.
The hickory-dns organization or repository can go away at any point in
time. That will make it way harder to re-build old versions of the app.
|
|
|
|
Fixing hypothetical denial of service due to ever growing memory usage.
Not possible to exploit in our app. 2/3 usages is in build dependencies.
Only usage inside the built app is via is-terminal which does not use
`rustix::fs::Dir`.
https://osv.dev/vulnerability/GHSA-c827-hfw6-qwvm
|
|
Only used via shadowsocks-rust, which is used for obfuscation by us. And
we don't rely on the cryptographic security of obfuscation anyway, so
this is not harmful to us, but good to upgrade away from vulns
https://osv.dev/vulnerability/CVE-2023-42811
|
|
|
|
This also fixes the issue of not handling closed sockets gracefully
|
|
|
|
|
|
|
|
|
|
`err_derive` is unmaintained and will probably stop working with rust
edition 2024. `thiserror` is almost a drop-in replacement. This commit
simply replaces all occurences of `derive(err_derive::Error)` with
`derive(thiserror::Error)` and fixes the attributes, but the Error and
Display impls should be identical.
|
|
Move `mullvad-relay-selector::relay_updater` to the `mullvad-daemon`.
The implications of this is that `mullvad-relay-selector` can drop the
dependency on both `mullvad-api` and `tokio`, which brings down the
total amount of dependencies when running a simple `Cargo check` from
250+ down to a mere 75. :-)
|
|
|
|
|
|
Refactor some parts of `talpid-core` to `talpid-future`.
|
|
|
|
|
|
|
|
|
|
Expose the functionally for calling `RtlGetVersion` from
`talpid-platform-metadata` through `mullvad-nsis`. This is used for
getting the Windows build version during the windows installer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Remove the dependency on `duct` from `talpid-openvpn`, since we can use
`tokio` to spawn processes instead.
|
|
`std::io::IsTerminal` has been since Rust `1.70`, which allows us to
migrate away from `is_terminal::IsTerminal`.
|
|
- General code cleanup
- Fix some typos
- Add some doc comments
- Address several `TODO` comments
- Fix `clippy` warnings
- Removed unused dependency `mullvad-api` from `mullvad-cli`
- Removed unused dependency `rand` from `mullvad-daemon`
- Rename `mullvad proxy` to `mullvad api-access`
- Rename `mullvad_types::api_access_method` -> `mullvad_types::access_method`
- Remove unused `mullvad api-access edit` arguments
- Fix `Display` for `ProxyConfig` printing arguments in the wrong order
- Re-phrase `mullvad api-access test`
- If the API call failed, point out which tested access method that
did not work.
- Fix missing `socket_bypass_tx` value for Android
- Refactor `ApiAccessMethod` proto definition
- Simplify protobuf definitions of `SOCKS5` api access methods
- Remove the `Socks5` enum in favor of implementing `Socks5Local` and
`Socks5Remote` directly.
- Move `enabled` and `name` out of the individual messages and put them
next to the `oneof access_method` in `ApiAccessMethod` proto definition
- Use derived `PartialEq` and `Hash` from `AccessMethod`
- Instead of hand-rolling `Hash` and implementing an ad-hoc version of
half of `PartialEq`, these can now be derived and used as one would
imaging due to the refactoring wherer `name` and `enabled` was moved
out of `AccessMethod` into `ApiAccessMethod`.
|
|
The `proxy` subcommand will allow for adding/deleting/editing/showing
different API access methods using the mullvad CLI.
|
|
- Rename `InnerConnectionMode` variant `Proxied` to `Shadowsocks`
- Move proxy/socket connection logic to `InnerConnectMode` impl block
- Move `handle_x_connection` functions to `InnerConnectionMode` impl block
- These functions does not need to be visible in the entire module, really.
- Refactor some code into standalone functions
- Mostly for visibilities' sake, but it also helps `rustc` with inferring
the return type of each match arm inside of `stream_fut`.
|