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>
75 lines
2.7 KiB
TOML
75 lines
2.7 KiB
TOML
[package]
|
|
name = "connlib-shared"
|
|
# mark:automatic-version
|
|
version = "1.0.0"
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
[features]
|
|
mock = []
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.80"
|
|
# Will be needed to safely modify `/etc/resolv.conf`
|
|
atomicwrites = "0.4.3"
|
|
secrecy = { workspace = true, features = ["serde", "bytes"] }
|
|
base64 = { version = "0.22", default-features = false, features = ["std"] }
|
|
boringtun = { workspace = true }
|
|
chrono = { workspace = true }
|
|
futures = { version = "0.3", default-features = false, features = ["std", "async-await", "executor"] }
|
|
futures-util = { version = "0.3", default-features = false, features = ["std", "async-await", "async-await-macro"] }
|
|
ip_network = { version = "0.4", default-features = false, features = ["serde"] }
|
|
# Needed to mark functions as exempt from `cargo-mutants` testing
|
|
mutants = "0.0.3"
|
|
os_info = { version = "3", default-features = false }
|
|
parking_lot = "0.12"
|
|
rand = { version = "0.8", default-features = false, features = ["std"] }
|
|
rand_core = { version = "0.6.4", default-features = false, features = ["std"] }
|
|
resolv-conf = "0.7.0"
|
|
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }
|
|
serde_json = { version = "1.0", default-features = false, features = ["std"] }
|
|
thiserror = { version = "1.0", default-features = false }
|
|
tokio = { version = "1.36", default-features = false, features = ["fs", "rt", "rt-multi-thread"]}
|
|
tokio-stream = { version = "0.1", features = ["time"] }
|
|
tokio-tungstenite = { version = "0.21", default-features = false, features = ["connect", "handshake", "rustls-tls-webpki-roots"] }
|
|
tracing = { workspace = true }
|
|
tracing-appender = "0.2"
|
|
url = { version = "2.4.1", default-features = false }
|
|
uuid = { version = "1.7", default-features = false, features = ["std", "v4", "serde"] }
|
|
ring = "0.17"
|
|
hickory-resolver = { workspace = true }
|
|
domain = { workspace = true }
|
|
libc = "0.2"
|
|
dns-lookup = { workspace = true }
|
|
known-folders = "1.1.0"
|
|
snownet = { workspace = true }
|
|
phoenix-channel = { workspace = true }
|
|
|
|
# Needed for Android logging until tracing is working
|
|
log = "0.4"
|
|
|
|
[dev-dependencies]
|
|
anyhow = "1.0"
|
|
itertools = "0.12"
|
|
tempfile = "3.10.1"
|
|
|
|
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
|
|
swift-bridge = { workspace = true }
|
|
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
tracing-android = "0.2"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
rtnetlink = { workspace = true }
|
|
|
|
# Windows tunnel dependencies
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
wintun = "0.4.0"
|
|
|
|
# Windows Win32 API
|
|
[target.'cfg(windows)'.dependencies.windows]
|
|
version = "0.54.0"
|
|
features = [
|
|
"Win32_Foundation",
|
|
]
|