mirror of
https://github.com/timothymiller/cloudflare-ddns.git
synced 2026-03-24 07:58:56 -03:00
Replace local_address bind with DNS-level address family filtering
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
This commit is contained in:
@@ -6,15 +6,15 @@ description = "Access your home network remotely via a custom domain name withou
|
||||
license = "GPL-3.0"
|
||||
|
||||
[dependencies]
|
||||
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
|
||||
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"] }
|
||||
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.13"
|
||||
if-addrs = "0.15"
|
||||
|
||||
[profile.release]
|
||||
opt-level = "s"
|
||||
|
||||
Reference in New Issue
Block a user