summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src
AgeCommit message (Collapse)AuthorFilesLines
2025-03-05Remove automatic tunnel typeDavid Lönnhager1-12/+2
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
2025-02-25Refactor unsafe slightly in mullvad_daemon::migrationsJoakim Hulthe1-12/+32
2025-02-25Allow undocumented_unsafe_blocks in even more modulesJoakim Hulthe2-0/+4
2025-02-25Allow undocumented_unsafe_blocks in some modulesJoakim Hulthe1-0/+2
2025-02-25Replace libc::getuid with nixJoakim Hulthe1-2/+1
2025-02-25Remove redundant warn(undocumented_unsafe_blocks) attrsJoakim Hulthe1-1/+0
2025-02-18Unify daemon app version typesKalle Lindström1-15/+57
Previously we had two types in the code base that dealt with version parsing. This commit unifies these types so that we only use the Version struct that is defines in the mullvad-version crate. This also solves a bug where the daemon code would crash on alpha versions, as the previous version parsing code didn't handle them.
2025-02-14Disable retries for hickory resolverDavid Lönnhager1-1/+3
2025-02-12Format workspaceSebastian Holmin25-63/+66
The 2024 edition contains new formatting rules. All of these are not compatible with the 2021 formatting style, but most of them are. To change the formatting to be as close to the new style as possible while remaining compatible with the 2021 edition, I first ran `cargo +beta fmt` with the edition set to 2024, then, with the edition set to 2021, I ran `cargo fmt`.
2025-02-12Fix `clippy::precedence`Sebastian Holmin26-154/+168
2025-02-12Fix `unsafe_op_in_unsafe_fn` warningSebastian Holmin1-4/+5
2025-02-12Remove `ref` bindingsSebastian Holmin2-3/+3
2025-02-12Fix "RPIT lifetime capture rules"Sebastian Holmin2-2/+4
2025-02-12Run `cargo +beta fix --edition`Sebastian Holmin9-48/+48
2025-02-06Request (poll) initial NetworkState at startupMarkus Pettersson1-0/+2
2025-01-24Complete leak checker and implement in daemonJoakim Hulthe2-19/+291
2025-01-24Add PoC leak checker library and CLIJoakim Hulthe2-0/+27
2025-01-22Avoid cloning settingsMarkus Pettersson2-5/+9
2025-01-22Fix ending up in blocked state when disabling split tunnelMarkus Pettersson1-5/+30
2025-01-14Replace `objc` with `objc2` to fix `clippy` warningsMarkus Pettersson1-11/+17
2025-01-02Change how daemon is startedEmīls2-39/+42
2025-01-02Remove global API endpointEmīls4-5/+27
2024-12-19Remove get_context_info for 32 bit x86 targetsLinus Färnstrand1-1/+1
2024-12-19Replace winapi with windows-sys in most cases in exception handlerLinus Färnstrand1-8/+12
2024-12-02Remove DNS fallback except for conncheckDavid Lönnhager2-11/+10
2024-11-28Fix clippy warningsMarkus Pettersson2-4/+2
2024-11-27Fix formattingDavid Göransson1-1/+1
2024-11-27Clarify commentsDavid Göransson1-2/+2
2024-11-27Update commentDavid Göransson1-4/+2
2024-11-27Handle legacy always-on vpn profilesDavid Göransson3-3/+41
Co-authored-by: Jonatan Rhodin <jonatan.rhodin@mullvad.net>
2024-11-26Make unix signal-handler signal-safeJoakim Hulthe3-123/+274
Other changes: - Re-enable the signal handler in release-builds. - Disable backtrace printing by default since it's not signal-safe. - Add `MULLVAD_BACKTRACE_ON_FAULT` env variable to enable backtracing. - Remove the alternate signal stack. The reasons for this are: - Setting up an alt-stack in a safe way is not trivial, our previous attempt was unsound in the presence of stack overflows. It can be done safely with mmap, but would require careful review. - The alt-stack is thread-local, meaning it would need to be initialized on a per-thread basis. We would need to hook into tokio and std::thread::spawn to be able to get good coverage, and even then there would no good way to ensure that *all* threads have an alternate stack, except that... - Rust (by default) allocates an alternate stack for every thread. Unfortunately, the prescence of Go code in our linked binary disables this feature. IMO, we should strive towards not having any Go code linked into the daemon for this reason.
2024-11-26Fix exception_logging module being included twiceJoakim Hulthe1-2/+2
2024-11-26Allow override of encrypted DNS domain nameBug Magnet1-1/+1
2024-11-22Simplify ConnectivityListenerDavid Lönnhager1-1/+0
2024-11-22Add non-blocking DNS resolver for Android API requestsDavid Lönnhager2-0/+72
2024-11-14Move constructor for `SelectorConfig` to `mullvad-types`Sebastian Holmin2-41/+8
2024-11-11Import structs and functions from `windows_sys`Markus Pettersson1-42/+35
2024-11-11Use safe wrapping_add when doing pointer arithmeticMarkus Pettersson1-1/+1
2024-11-11Move pub function to top of moduleMarkus Pettersson1-5/+5
2024-11-07Disable `fault_handler` in release buildsJoakim Hulthe1-79/+131
2024-10-31Do not fallback to direct API connections when testing access methodsMarkus Pettersson3-42/+119
2024-10-29Add RPC for checking if TCC approval is neededDavid Lönnhager1-0/+12
2024-10-29Throw error if `set_block_when_disconnected` is called on AndroidMarkus Pettersson1-2/+1
2024-10-29Remove `block_when_disconnected` setting on AndroidMarkus Pettersson3-18/+39
2024-10-23Fetch new Encrypted DNS configs when the access method is engagedMarkus Pettersson1-50/+33
2024-10-23Do not implement `std::fmt::Display` for `ProxyConfig`Markus Pettersson1-6/+3
Use the Debug implementation in the one case where the Display implementation was used.
2024-10-23Enable Encrypted DNS proxy access method in the daemonMarkus Pettersson1-8/+47
2024-10-23Define the built-in access method "Encrypted DNS proxy"Markus Pettersson1-0/+3
2024-10-18Reconnect when `Direct only` option is toggled even when multihop is onMarkus Pettersson1-2/+1
2024-10-16Set block_when_disconnected to always be false on androidJonatan Rhodin1-1/+8