mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
This isn't really user-facing, so I marked it down from `feat` to `chore`. Closes #3817 - If we exit gracefully, `/etc/resolv.conf` is reverted - We always keep the `.before-firezone` backup in case we lose power and the revert transaction is corrupted or rolled back - We use a magic header to detect whether the last run was a crash or not. If Firezone crashes and the user wants to modify their default DNS, they need to delete that header so that Firezone won't accidentally revert its backup and trash their change. - All error variants for this module replaced with `anyhow::Error` since they were never matched by callers. I ran `cargo mutants` locally and it helped me validate the unit tests and it picked up a `match` branch that I forgot to delete. ```[tasklist] - [x] (Failed: Integration tests didn't like it) ~~Add the system default resolvers below Firezone's sentinels~~ - [x] `tracing::info` "Last run crashed" if we have to revert the file at startup ``` --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Rust development guide
Firezone uses Rust for all data plane components. This directory contains the Linux and Windows clients, and low-level networking implementations related to STUN/TURN.
We target the last stable release of Rust using rust-toolchain.toml.
If you are using rustup, that is automatically handled for you.
Otherwise, ensure you have the latest stable version of Rust installed.