| Age | Commit message (Collapse) | Author | Files | Lines |
|
Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net>
|
|
Do not care about talpid-openvpn since it's slated for removal
|
|
|
|
|
|
Document why `rand` can't be upgraded in `wireguard_nt::daita`
|
|
Signed-off-by: Markus Pettersson <markus.pettersson@mullvad.net>
|
|
Signed-off-by: Markus Pettersson <markus.pettersson@mullvad.net>
|
|
|
|
Adds:
- Userspace multihop de-fragmentation
- PcapSniffer
- UDP GRO on Linux
Also updates setup of userspace multihop on the deamon side, as
`PacketChannel` has been replaced with specifc channel types that
implement the `IpSend`, `IpRecv`, `UdpSend` and `UdpRecv` traits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net>
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
Co-authored-by: David Göransson <david.goransson@mullvad.net>
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
Co-authored-by: David Lönnhager <david.l@mullvad.net>
|
|
Previous implementation spawned a process with tokio which in turn
registered a signal handler without ONASTACK flag set.
When using GO code, all signal handlers needs to have this flag
set otherwise a signal might be handled on a goroutine thread
which has a small stack and thus can overflow.
Reference: DROID-1825
Co-authored-by: David Lönnhager <david.l@mullvad.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix `cargo test -p talpid-wireguard` by adding missing `test-util`
feature for `tokio`.
|
|
Co-authored-by: David Lönnhager <david.l@mullvad.net>
|
|
|
|
- Add local wireguard go import
- Activate DAITA and add `wgActivateDaita` and `wgReceiveEvent` FFI
- Implement `start_daita` on Wireguard-go tunnel type
- Mention DAITA in `wireguard-go-rs` description
- Do not compile `wireguard-go-rs` on Windows
- Handle DAITA closed on `nil` event
- Handle daita action timeouts in libwg
- Remove noisy log lines
- Remove `maybenot_on_action` callback
- Remove unused link to `../build/lib` for `talpid-wireguard`
- Bump the `wireguard-go` submodule to a signed release tag in Mullvad's
`wireguard-go` fork.
- Update path to `libwg/go.sum` in verification script
Also:
- Use u64 instead of *mut void as log context
- Make Tunnel::set_config take a &mut self
- Use dyn Error instead of i32s for wg errors
Co-authored-by: Joakim Hulthe <joakim@hulthe.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.
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
|
|
Since Rust 1.75.0 the `version` field is optional. The version
defaults to "0.0.0" if it's not specified, and `publish` defaults
to false if no version has been given. So by not specifying
a version we get both `version = "0.0.0" and `publish = false`
"for free"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To align more with the upcoming standardizations within the Rust
ecosystem which started with the release of `1.70.0` and the inevitable
deprecation of `lazy_static`.
|
|
|
|
|