When multiple IPs trigger the same rule simultaneously, they were
sharing the same check_keys value (only rule ID), causing the manager
to abort all but the first execution.
Changed the key to include both rule_id and srcip to make it unique
per source IP, allowing multiple simultaneous blocks while still
preventing duplicate blocks of the same IP.
Fixes#4738
* Add ports to Events page
* fixes race condition updating the blocklist
* Native integration with DNSCrypt-proxy
Added Q-Feeds domains to the DNSBL list of DNSCrypt-Proxy. Changed since the initial way, this is more native. Q-Feeds domains txt files only created if DNSCrypt-proxy is installed and if the list (qf) is selected.
Add native support for Hetzner Cloud DNS API (api.hetzner.cloud).
Hetzner is migrating from dns.hetzner.com to Cloud Console,
with the old API shutting down in May 2026.
Features:
- Bearer token authentication
- A and AAAA record support
- Multiple hostnames (comma-separated)
- Configurable TTL
* Add dnspod.cn ddns support
* Add multiple hostname support
* Fix the problem of processing the result returned by ModifyRecordBatch
* Fix using wrong variable
---------
Co-authored-by: AnShen <x@ipy.me>