Maintenance release. Bug fix for rand 0.10 API change, plus opt-in failure-safe deletion behavior, dependency refresh, and proportional jitter for IP detection.
Highlights
- Fix: Restore the build under
rand0.10 —random_rangemoved to theRngExttrait, and the unconditional jitter sleep in--repeatmode no longer fails to compile. - New:
DELETE_ON_FAILURE(env-var mode) controls whether DNS records are removed when an IP detection or update fails. Defaults totrueto preserve existing behavior; setDELETE_ON_FAILURE=falseto keep stale records on transient failures instead of yanking them. - Improvement: Proportional jitter (up to 20% of the update interval) is added before each scheduled update to spread requests across clients and reduce synchronized spikes against the Cloudflare API.
Changes since v2.1.0
Features
DELETE_ON_FAILUREenv var to prevent DNS record deletion on failed updates (#263, thanks @DMaxter)- Proportional jitter on update intervals to desynchronize API traffic (#253, thanks @jhutchings1)
Fixes
- Compile fix for
rand0.10: importRngExtsorandom_rangeresolves delete_on_failureregression test coverage added
Dependencies
rustls0.23.37 → 0.23.40rustls-webpki0.103.10 → 0.103.13tokio1.50.0 → 1.52.1reqwest0.13.2 → 0.13.3rand0.9.2 → 0.10.1
Docs
- Document
DELETE_ON_FAILUREin the README
Upgrade notes
- Default behavior unchanged.
DELETE_ON_FAILUREdefaults totrue. Set it tofalseif you want stale records preserved during outages. - No config file schema changes. Existing
config.jsondeployments work without edits.
Docker
docker pull timothyjmiller/cloudflare-ddns:2.1.1
docker pull timothyjmiller/cloudflare-ddns:latestMulti-arch: linux/amd64, linux/arm64, linux/ppc64le.