Skip to content

Releases: libdns/all-inkl

v0.2.5

Choose a tag to compare

@ljelschen ljelschen released this 04 Jul 12:41

v0.2.5

Fixed

  • Deleting a record could remove the wrong one when multiple records shared the same name (#2).
    Record lookups for deletion previously matched on record_name only. When a zone had two records with the same name but different values — for example, two _acme-challenge TXT records created while solving DNS-01 challenges for a certificate and its wildcard counterpart at the same time — DeleteRecord could match and delete the wrong one, leaving a stale record behind and breaking ACME validation.
    Deletion now matches on name, type, and value together, so it uniquely identifies the exact record to remove.

  • AppendRecord failed with an unhelpful invalid response format error, hiding the real cause (caddy-dns/all-inkl#2).
    SOAP fault detection previously only recognized a bare Fault element. Faults returned with a namespace prefix (e.g. soap:Fault, SOAP-ENV:Fault) — which can happen under conditions like KAS's flood/rate-limit protection — went undetected and fell through to a generic, undiagnosable error.
    Fault detection now searches the full response for a fault message regardless of namespace, and if the response still doesn't parse as expected, the error now includes the raw API response so the actual cause is visible.

Changed

  • All KAS API calls (GetAllRecords, AppendRecord, SetRecord, DeleteRecord) are now serialized with a mutex around the full request/response round trip. Previously, concurrent calls (e.g. Caddy solving several DNS-01 challenges in parallel) could each pass the flood-delay check at nearly the same instant and then hit KAS simultaneously, tripping its flood protection.
  • SetRecord now updates its in-memory cache entry after a successful update, so a subsequent DeleteRecord targeting the new value works against fresh data instead of a stale cached one.

Tests

  • Added an integration test that creates two records with the same name but different values, deletes one, and verifies only the targeted record is removed.
  • Added an integration test that fires several AppendRecord calls concurrently to guard against regressions in call serialization.
  • Added unit tests for the fault-detection helper covering bare and namespace-prefixed SOAP faults.

Upgrade notes

No configuration or API changes. If you were relying on DeleteRecord matching by name alone, note that a delete call now requires the record's value to match exactly what's stored — this is the intended fix and matches standard libdns semantics.

v0.2.4

Choose a tag to compare

@ljelschen ljelschen released this 10 Mar 09:07

Update the flood delay to the API value and set it globally

v0.2.3

Choose a tag to compare

@ljelschen ljelschen released this 08 Mar 23:26

add dynamic flood delay

v0.2.2

Choose a tag to compare

@ljelschen ljelschen released this 08 Mar 04:05
51954f8

fix: API flooding

v0.2.1

Choose a tag to compare

@ljelschen ljelschen released this 22 Nov 02:47
fix double dot issue

v0.2.0

Choose a tag to compare

@ljelschen ljelschen released this 21 Nov 02:42

Support Caddy v2.10