summaryrefslogtreecommitdiffhomepage
path: root/talpid-openvpn/src/lib.rs
AgeCommit message (Collapse)AuthorFilesLines
2025-09-08Fix lint `clippy::implicit_clone`Markus Pettersson1-2/+2
2025-07-15Fix `collapsible_if` clippy lintMarkus Pettersson1-7/+7
2025-07-11Fix lint `unused_parens`Markus Pettersson1-1/+1
2025-07-10Run `cargo fmt`Sebastian Holmin1-17/+14
2025-07-09Use `io:Error::other`Sebastian Holmin1-1/+1
2025-07-09Put the `tonic::Status` in a Box to make the error type smallerSebastian Holmin1-1/+2
2025-02-25Add safety comment in talpid_openvpnJoakim Hulthe1-0/+1
2025-02-12Fix miscellaneous lintsSebastian Holmin1-1/+1
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-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-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 Hulthe1-30/+29
`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önnhager1-6/+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 Holmin1-2/+1
2024-01-04Add workspace level lintsLinus Färnstrand1-1/+0
2024-01-03Allow app to use custom socks5 and shadwosocks proxiesJonathan1-40/+50
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.
2023-10-20Move talpid-windows-net into talpid-windowsDavid Lönnhager1-6/+7
2023-10-12Update OpenVPN monitorDavid Lönnhager1-178/+106
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 Pettersson1-68/+67
Remove the dependency on `duct` from `talpid-openvpn`, since we can use `tokio` to spawn processes instead.
2023-08-30Fix clippy lintsEmīls1-46/+57
2023-08-04Replace all use of `lazy_static` with `once_cell`Markus Pettersson1-5/+5
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-04-21Apply clippy --fix fixesLinus Färnstrand1-4/+4
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-02-22Use netlink for openvpnDavid Lönnhager1-7/+0
2023-02-08Make async fns without awaits into regular fnsLinus Färnstrand1-0/+1
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ņķis1-0/+1373