summaryrefslogtreecommitdiffhomepage
path: root/talpid-openvpn/src
AgeCommit message (Collapse)AuthorFilesLines
2024-12-12Remove some deprecated ref patternsJoakim Hulthe1-4/+4
2024-12-02Replace generic with new typeSebastian Holmin1-33/+31
2024-12-02Replace dyn fn with genericSebastian Holmin1-27/+8
2024-09-24Add fallback when failing to create `wintun` adapterSebastian Holmin1-17/+27
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2024-09-02Run `cargo +nightly clippy --fix`Markus Pettersson1-4/+2
2024-08-27Use std LazyLock instead of once_cell LazyDavid Lönnhager1-5/+6
2024-08-21Fix flaky wait_closed testDavid Lönnhager1-17/+47
The test is inherently racy because the 'process' closes immediately and its future may resolve before the close handle stops the monitor
2024-04-25Update windows-sysJoakim Hulthe1-4/+2
2024-03-25Remove unused fieldMarkus Pettersson1-1/+5
Fix `dead-code` warning introduced by new nightly version of rustc
2024-03-14Simplify route manager handleDavid Lönnhager1-3/+3
2024-02-27Replace err_derive with thiserrorJoakim Hulthe2-33/+32
`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.
2024-02-19Fix redundant importsDavid Lönnhager2-7/+2
2024-01-31Simplify retry logic in connecting stateDavid Lönnhager1-0/+22
2024-01-12Validate SOCKS5 credentialsMarkus Pettersson1-2/+2
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
2024-01-05Run `cargo +nightly fmt`Sebastian Holmin2-4/+3
2024-01-04Add workspace level lintsLinus Färnstrand1-1/+0
2024-01-03Allow app to use custom socks5 and shadwosocks proxiesJonathan4-78/+94
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.
2024-01-02Fix clippy lintsDavid Lönnhager1-1/+1
2023-10-20Move talpid-windows-net into talpid-windowsDavid Lönnhager1-6/+7
2023-10-20Remove pointless locks from wintunDavid Lönnhager1-26/+11
2023-10-12Update OpenVPN monitorDavid Lönnhager2-255/+170
2023-10-11Get rid of nested `Arc`sMarkus Pettersson1-5/+5
2023-10-11Refactor test cases which use a `tokio` runtimeMarkus Pettersson1-90/+59
Prefer to use the `tokio::test` attribute which ships with `tokio` instead of manually creating a runtime for each test which needs it.
2023-10-11Remove dependency on `duct`Markus Pettersson4-153/+121
Remove the dependency on `duct` from `talpid-openvpn`, since we can use `tokio` to spawn processes instead.
2023-10-11Remove dependency `is-terminal` from `talpid-openvpn`Markus Pettersson1-1/+1
`std::io::IsTerminal` has been since Rust `1.70`, which allows us to migrate away from `is_terminal::IsTerminal`.
2023-08-30Remove unused socket2 dependencyEmīls1-2/+1
2023-08-30Fetch port after socket is bound for shadowsocksEmīls Piņķis1-18/+15
2023-08-30Fix clippy lintsEmīls1-46/+57
2023-08-28Update shadowsocks to 1.16Emīls1-2/+2
2023-08-08Update talpid-openvpn to be windows-sys 0.48 compatibleLinus Färnstrand1-10/+4
2023-08-08Use HMODULE instead of HINSTANCE in DLL handling codeLinus Färnstrand1-6/+6
2023-08-04Replace all use of `lazy_static` with `once_cell`Markus Pettersson2-10/+8
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`.
2023-07-07Improve documentation on OpenVpnProcHandleLinus Färnstrand1-6/+8
2023-06-28Silence OpenVPN 'replay attack' warnings.Markus Pettersson1-0/+1
Make the logs less verbose and easier to read by silencing 'replay attack' warnings. There are lots of false positives showing up in regular UDP connections, and since we don’t act on potential replays or warn our users (it’s pretty hidden in the logs) they don’t really serve much purpose to be there. The warning should not pose any threat to the user.
2023-04-21Fix misc clippy warnings for WindowsLinus Färnstrand1-1/+1
2023-04-21Apply clippy --fix fixesLinus Färnstrand2-5/+5
This commit does not contain everything that `cargo clippy --fix` changed on Windows. But the least controversial and simplest subset. The remaining fixes I felt could use some manual cleanup also.
2023-04-20Update shadowsocks to 1.15.3Emīls1-3/+9
2023-02-22Use netlink for openvpnDavid Lönnhager2-20/+0
2023-02-08Make async fns without awaits into regular fnsLinus Färnstrand1-0/+1
2023-02-01Replace atty with is-terminal in talpid-openvpnLinus Färnstrand1-3/+4
2023-01-30Run `cargo clippy --fix` with the new Rust 1.67 preferred formatLinus Färnstrand1-3/+3
2022-11-08Use fwmark for routing in openvpnEmīls Piņķis1-0/+24
2022-11-07Refactor routing codeEmīls Piņķis1-1/+1
Simplify routing to abstract some of the platform specific details
2022-11-07Split up talpid-coreEmīls Piņķis9-0/+2656