Skip to content

dns/ddclient: Preserve the other address family (A/AAAA) on deSEC update (#5232)#5312

Open
max-foss wants to merge 1 commit intoopnsense:masterfrom
max-foss:master
Open

dns/ddclient: Preserve the other address family (A/AAAA) on deSEC update (#5232)#5312
max-foss wants to merge 1 commit intoopnsense:masterfrom
max-foss:master

Conversation

@max-foss
Copy link
Copy Markdown

Important notices
Before you submit a pull request, we ask you kindly to acknowledge the following:

If AI was used, please disclose:

  • Model used: GPT 5.4 in Codex
  • Extent of AI involvement: Tight supervision, back and forth until we came up with the cleanest possible solution

Related issue
#5232


Describe the problem
Using desec-v4 and desec-v6 alongside each other (dual-stack) causes either the A- or the AAAA-record to be deleted again.


Describe the proposed solution
Here we add preserve for the other address family in line with the official documentation.

The behaviour for hostnames having either only an AAAA- or an A-record (single-stack) is unchanged.


@AdSchellevis
Copy link
Copy Markdown
Member

it's better to add a separate implementation when specific parameters are needed which are not part of the standard dyndns implementation.

@max-foss
Copy link
Copy Markdown
Author

For a separate implementation to be worthwhile, we would need to touch the UI: Adding a checkbox to toggle the preserve behaviour (for the tiny minority who might want it), removing the unused username field, and replacing the password field with token in line with the deSEC naming scheme.

Otherwise we'd just be duplicating ~100 lines of code needlessly.

What do you think?

@max-foss
Copy link
Copy Markdown
Author

max-foss commented May 6, 2026

Hi all,

I just pushed a proper full rework of this PR, I am already rocking it locally.

Review notes:

  • The migration for existing entries keeps the pruning of the other address family enabled by default (as-is), while new entries disable it by default.
  • Rollback to an earlier version is fully supported after updating, but not if the entry was created after the update to this version.
  • The terminology is now fully aligned with the deSEC documentation; neither a username nor a password (in the literal sense of an account password) was ever supported, so this is not removing any actual functionality.

For the rest, please see my comments. I took great care writing them.

Cheers

Max

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants