summaryrefslogtreecommitdiffhomepage
path: root/talpid-routing/src
AgeCommit message (Collapse)AuthorFilesLines
2024-04-03Enable single-use-lifetimes rustc lintLinus Färnstrand1-1/+1
Removes superfluous lifetime definitions. Simplifying the code
2024-03-18Make burst guard publicDavid Lönnhager2-1/+3
2024-03-14Simplify route manager handleDavid Lönnhager3-255/+145
2024-03-13Fix recv errorDavid Lönnhager1-1/+1
2024-03-13Recreate routing socket if it has been shut down while readingDavid Lönnhager1-5/+13
2024-03-13Hide wait_for_responseDavid Lönnhager1-1/+1
2024-03-13Add helper for checking if routing socket has been shut downDavid Lönnhager1-0/+17
2024-03-13Log when select functions are called an unusual number of timesDavid Lönnhager3-0/+11
2024-03-11Don't block when dropping route managerDavid Lönnhager1-3/+4
2024-03-11Unify stop method signature between route manager implementationsDavid Lönnhager1-7/+12
2024-03-11Use block_in_place() in drop implAndrej Mihajlov1-3/+3
See: https://github.com/tokio-rs/tokio/issues/5843
2024-03-11Remove unnecessary mutabilityDavid Lönnhager1-4/+4
2024-03-11Simplify unix route monitorDavid Lönnhager1-40/+19
2024-03-11Simplify Windows route monitorDavid Lönnhager1-37/+21
2024-03-11Remove unused error variants in routing::unix::ErrorAndrej Mihajlov1-7/+1
2024-03-08Remove superfluous commentsDavid Lönnhager1-8/+0
2024-03-08Clean up macOS routing data errorsDavid Lönnhager3-54/+59
2024-03-08Print all source errors for macOS routing errorsDavid Lönnhager3-7/+12
2024-03-07Bump nixAndrej Mihajlov2-6/+8
2024-03-07Update bitflags to v2Andrej Mihajlov1-0/+3
2024-03-07routing: use libc constantsAndrej Mihajlov1-58/+57
2024-02-27Replace err_derive with thiserrorJoakim Hulthe7-78/+76
`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-7/+0
2024-02-09Detect available IP versionsMarkus Pettersson1-3/+1
Try to detect available IP versions by looking at the available routes on the host. On Linux, we check if there exists IPv4 and/or IPv6 routes to some public IP addresses. On macOS and Windows, we check if there exists default routes for IPv4 and/or IPv6. On Android, we check if there is any connectivity at all. The intention is to be able to generate better default constraints for tunnel endpoints. If we can detect "working" IPv4 and/or IPv6 and forward this information to a `TunnelParametersGenerator`, we may choose to connect to a Wireguard relay using IPv6 as part of our retry-strategy. This has not been possible before.
2024-01-31Simplify retry logic in connecting stateDavid Lönnhager2-0/+26
2024-01-25Set default route MTU when using multihop on macOS. This prevents fragmentationDavid Lönnhager3-8/+40
2024-01-15Reconnect if default route disappears while connecting on macOSDavid Lönnhager3-2/+12
2024-01-08Set scope ID when restoring default route whose gateway is a link-local addressDavid Lönnhager2-9/+32
2024-01-05Run `cargo +nightly fmt`Sebastian Holmin1-1/+1
2024-01-04Add workspace level lintsLinus Färnstrand1-1/+0
2024-01-03Remove excessive logging of interfaces on macOSDavid Lönnhager1-9/+2
2024-01-02Fix clippy lintsDavid Lönnhager3-3/+3
2023-12-04Subtract multihop overhead from default route MTU on LinuxDavid Lönnhager2-3/+37
2023-10-20Move talpid-windows-net into talpid-windowsDavid Lönnhager4-12/+10
2023-10-10Refresh routes when connecting in offline statesDavid Lönnhager1-0/+8
2023-10-10Print network services when offlineDavid Lönnhager2-0/+24
2023-10-10React to any network service change in dynamic storeDavid Lönnhager2-11/+70
2023-10-09Create DynamicStore on startup in macOS route monitorDavid Lönnhager2-133/+189
2023-10-09Make BurstGuard configurableDavid Lönnhager3-24/+57
2023-10-05Find router IP using system configuration frameworkDavid Lönnhager2-170/+103
2023-10-05Parse ipconfig instead of the routing tableEmīls3-149/+214
Co-authored-by: David Lönnhager <david.l@mullvad.net>
2023-10-05Remove old scoped route when the default route changesDavid Lönnhager1-47/+40
2023-10-05Coalesce route events in macOS route monitorDavid Lönnhager5-28/+60
2023-10-05Move debounce logic out of windows modDavid Lönnhager3-88/+92
2023-09-19Update macOS route monitorDavid Lönnhager2-42/+61
2023-09-19Use unscoped route as best route if there's no tunDavid Lönnhager2-67/+103
2023-09-19Improve logging for default routesDavid Lönnhager1-3/+10
2023-09-19Update default routes on macOS on any address or route changeDavid Lönnhager1-47/+14
Previously, changes to interface addresses were missed
2023-09-19Ignore default routes whose interface are inactive. Stale scoped routes ↵David Lönnhager1-4/+43
fooled the offline detection into thinking that there were working routes
2023-09-19Force delete unscoped route before adding tunnel default routeDavid Lönnhager1-8/+38