mirror of
https://github.com/timothymiller/cloudflare-ddns.git
synced 2026-03-24 07:58:56 -03:00
The split client previously bound to 0.0.0.0 / [::] to force IPv4/IPv6, but this only hinted at the address family — happy-eyeballs could still race and connect over the wrong protocol on dual-stack hosts. Introduce a FilteredResolver that strips wrong-family addresses from DNS results before the HTTP client sees them, matching the "split dialer" pattern from favonia/cloudflare-ddns. This guarantees the client can only establish connections over the desired protocol. Also switch Cloudflare trace URLs from literal resolver IPs (1.0.0.1 / [2606:4700:4700::1001]) to cloudflare.com with an api.cloudflare.com fallback — the DNS filter makes dual-stack hostnames safe, and literal IPs caused TLS SNI mismatches for some users. - reqwest 0.12 → 0.13 (adds dns_resolver API) - if-addrs 0.13 → 0.15 - tokio: add "net" feature for tokio::net::lookup_host
29 lines
708 B
TOML
29 lines
708 B
TOML
[package]
|
|
name = "cloudflare-ddns"
|
|
version = "2.0.8"
|
|
edition = "2021"
|
|
description = "Access your home network remotely via a custom domain name without a static IP"
|
|
license = "GPL-3.0"
|
|
|
|
[dependencies]
|
|
reqwest = { version = "0.13", features = ["json", "form", "rustls"], default-features = false }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "signal", "net"] }
|
|
regex = "1"
|
|
chrono = { version = "0.4", features = ["clock"] }
|
|
url = "2"
|
|
idna = "1"
|
|
if-addrs = "0.15"
|
|
|
|
[profile.release]
|
|
opt-level = "s"
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.27.0"
|
|
wiremock = "0.6"
|