summaryrefslogtreecommitdiffhomepage
path: root/talpid-wireguard/src
AgeCommit message (Collapse)AuthorFilesLines
2024-11-22Check that that tunnel can serve traffic after starting a new tunnelKalle Lindström12-489/+678
- Split up "ConnectivityCheck" into more descriptive types and collect them in a new `connectivity` module. - Fix allow Wireguard-Go tunnel setup to be cancelled - Use retry param in connectivity check
2024-11-22Fix a lot of thingsMarkus Pettersson7-176/+180
- Fix remaining rustc warnings on non-Android platforms - Fix lookup entry peer if it exists in wireguard-go - Fix talpid-wireguard not compiling on windows - Fix entry peer config code - Fix clippy issue - Fix Daita - Remove TODOs
2024-11-22Add multihop negotiation with ephemeral peersKalle Lindström7-130/+298
Use `WgGoTunnel` directly on Android because a specialized implemenation of `set_config` has to be used.
2024-11-22Split up platform specific `start_tunnel` functionsMarkus Pettersson2-45/+120
2024-11-22Clean upJonatan Rhodin1-3/+3
- Fix outdated comment - Remove unused go function - Remove outdated TODO comment - Run `go fmt` on `libwg_android.go` - Document `AllowedTunnelTraffic`, `get_socket_v4` and `get_socket_v6`
2024-11-22Fix socket function in wireguard-goJonatan Rhodin1-0/+16
2024-11-22Add initial multihop config on AndroidJonatan Rhodin1-0/+50
- Add some minor wireguard go changes
2024-11-12Use maybenotv2 on iOS, remove maybenotv1Emīls2-2/+2
2024-11-01Document purpose of testsDavid Lönnhager2-0/+4
2024-11-01Add unit test for maybenot machines for wg-goDavid Lönnhager1-10/+30
2024-11-01Add unit test for parsing maybenot machines on WindowsDavid Lönnhager1-20/+40
2024-10-30Add back maybenot_machines version 1Joakim Hulthe2-2/+2
2024-10-29Replace maybenot machines with v2 machinesDavid Lönnhager1-1/+1
Co-authored-by: Joakim Hulthe <joakim@hulthe.net>
2024-10-24Fix endpoint addr routeDavid Lönnhager1-2/+2
2024-10-23Do not adjust MTU at all if user has overridden itDavid Lönnhager1-6/+12
2024-10-23Move MTU adjustment into talpid-wireguardDavid Lönnhager1-4/+85
2024-10-21Add maybenot v2 machinesDavid Lönnhager1-1/+1
2024-10-21Update to maybenot 2.0.0 on WindowsDavid Lönnhager1-36/+42
2024-10-21Take obfuscation overhead into account when setting MTUJoakim Hulthe2-22/+19
2024-10-17Fix obfuscation not being applied properly on tunnel creationDavid Göransson1-9/+10
2024-10-17Document relationship between ephemeral peer MTU fixesLinus Färnstrand1-0/+3
2024-10-15Make unrelated changes to WireGuard config code to please compilerLinus Färnstrand1-3/+3
2024-09-24Move ephemeral negotiation to own moduleDavid Lönnhager2-200/+248
2024-09-24Lower MTU during ephemeral peer negotiation on WindowsDavid Lönnhager1-0/+27
2024-09-23Generalize error that could occur while negotiating an ephemeral peerMarkus Pettersson1-8/+10
2024-09-20Refactor obfuscation setupDavid Lönnhager2-145/+176
2024-09-18Fix bug where allowed ips would not be patched if DAITA was enabledMarkus Pettersson1-4/+6
2024-09-18Fix negotiation of ephemeral peer failing due to timeoutMarkus Pettersson1-24/+188
Address a race condition in `WireguardMonitor::start` where a Wireguard-GO tunnel would be started but try to serve traffic before actually being ready to do so. This is probably a latent issue on all platforms using Wireguard-GO, but it was mostly noticeable on Android.
2024-09-02Fix a lingering panic by using a stricter typeMax Zettlmeißl1-1/+1
The functions `request_ephemeral_peer` and consecutively `new_client` accepted an `IpAddr`, but due to only ever preparing a v4 socket this lead to panic due to an `EAFNOSUPPORT` error if an IPv6 was provided. It would also have made sense to change `new_client` to create either an IPv4 or IPv6 socket depending on the type of the address, but the tuncfg service is currently not accepting IPv6 connections, therefore this was the cleaner change.
2024-09-02Set tunnel name to wg0-mullvad for wireguard-goDavid Lönnhager5-4/+16
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2024-08-27Use std LazyLock instead of once_cell LazyDavid Lönnhager3-19/+18
2024-08-26Remove unwraps in start_daitaJoakim Hulthe1-3/+4
2024-08-20Move MTU helpers to talpid-net crateDavid Lönnhager3-80/+1
2024-08-20Add function for retrieving interface MTUDavid Lönnhager1-5/+36
2024-08-16Add Shadowsocks obfuscation support to mullvad-daemonDavid Lönnhager1-42/+58
2024-08-16Add Shadowsocks to tunnel-obfuscation crateDavid Lönnhager1-2/+2
2024-08-13Refactor tunnel provider and TalpidVpnServiceDavid Lönnhager1-36/+8
This also fixes the issue of the VPN service being restarted unnecessarily
2024-08-13Don't pass in excluded apps from wireguard-goDavid Lönnhager1-5/+0
2024-07-26Fix `doc list item missing indentation`Sebastian Holmin1-2/+2
2024-06-28Remove pointless firewall updateDavid Lönnhager2-56/+46
2024-06-25Add `daita` as a Cargo cfg variableMarkus Pettersson7-29/+62
Gate DAITA compilation on `"cargo::rustc-cfg=daita"` emitted in build files per platform.
2024-06-25Enable constant packet size for wireguard-goMarkus Pettersson2-1/+5
Activate the setting when DAITA is enabled and write constant packet size to WG config string. Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
2024-06-25Use Wireguard-go when DAITA is enabledMarkus Pettersson2-18/+52
2024-06-25Add a safe FFI wrapper in `wireguard-go-rs`Sebastian Holmin8-218/+176
- 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>
2024-06-24Run `cargo +nightly fmt`Sebastian Holmin1-5/+7
2024-05-29Migrate to gRPCDavid Göransson1-3/+14
Co-authored-by: Jonatan Rhodin <jonatan.rhodin@mullvad.net> Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net> Co-authored-by: David Lönnhager <david.l@mullvad.net>
2024-04-25Fix use of deprecated socket2 functionJoakim Hulthe1-1/+1
2024-04-25Update windows-sysJoakim Hulthe1-4/+2
2024-04-22Fix broken lints in rustdocsSebastian Holmin1-7/+7
I ran `cargo doc` and fixed as many broken links as I could find.
2024-04-16Add DAITA to relay selectionDavid Lönnhager1-1/+1