* dns/ddclient: add all-inkl.com KAS API DynDNS provider
Adds a new Python provider for all-inkl.com hosting using the KAS SOAP API
(KasApi.wsdl). Supports A and AAAA records, including root (@) and wildcard (*)
entries. Credentials are passed per-request (no separate auth step).
- allinkl.py: new provider class AllInkl, service key 'allinkl'
- dialogAccount.xml: show Zone field for service_allinkl
- DynDNS.xml: add allinkl to static service list (ddclient backend fallback)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* dns/ddclient: address review feedback for all-inkl.com provider
- Remove allinkl entry from DynDNS.xml; known_services() handles
registration automatically for Python providers
- Replace regex-based XML parsing with xml.etree.ElementTree:
fault detection, record lookup and update success check
- Also catches ET.ParseError for malformed responses
- Fix German comments in docstring to English
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Carsten <carsten@kallies-net.de>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Update hetzner.py
Added workaround for API bug on update record. Thanks to @arcanconsulting
* Update hetzner.py
Added LOG_NOTICE for deletion.
* Update hetzner.py
Updated _update method. No workaround needed.
* Update hetzner.py
fix: correct indentation of return statement in _update_record
* Update hetzner.py
fix: removed ttl from _update_record as its not supported (thanks to Ollienator).
* Removed _get_record() and existence-check of zone to save API-Calls. Thanks to @TheRealBecks
* restored filepermissions to 755 and removed useless comment
* removed links and added original whitespaces.
* removed whitespace on line 62
---------
Co-authored-by: Julian Nikodemus <dev@nkdms.de>
When multiple bootstrap resolvers are configured in the "Fallback Resolver"
field (e.g., "1.1.1.1:53,9.9.9.9:53"), the generated config incorrectly
places the comma inside a single string:
bootstrap_resolvers = ['1.1.1.1:53,9.9.9.9:53']
This causes dnscrypt-proxy to fail with:
[FATAL] Bootstrap resolver [...]: Host does not parse as IP '1.1.1.1:53,9.9.9.9:53'
The fix applies the same split/join pattern already used for listen_addresses,
server_names, disabled_server_names, and relaylist in the same template:
bootstrap_resolvers = ['1.1.1.1:53','9.9.9.9:53']
This bug was introduced in commit 1eec51a65 which renamed fallback_resolver
to bootstrap_resolvers but did not update the template syntax from a single
string to a TOML array format.
* 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>
* check for empty string ip address
* Replace dyndns ipv4 by dynu ipv6 and ipv4
* Add services and cleaner check of no ip
* PR feedback - revert
* Update dns/ddclient/src/opnsense/scripts/ddclient/lib/account/__init__.py
---------
Co-authored-by: Meliox <na>
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>