From d74a464970f7994127b6f1e89060637ab75de7f5 Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 15 Mar 2025 18:53:53 +0100 Subject: [PATCH] fix(desec): only update specified ip version Only the record of the specified ip version is changed. This also increases security (see warning here: https://desec.readthedocs.io/en/latest/dyndns/update-api.html#determine-ip-address-es) --- internal/provider/providers/desec/provider.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/provider/providers/desec/provider.go b/internal/provider/providers/desec/provider.go index 08ac414ae..3994153ab 100644 --- a/internal/provider/providers/desec/provider.go +++ b/internal/provider/providers/desec/provider.go @@ -108,10 +108,17 @@ func (p *Provider) Update(ctx context.Context, client *http.Client, ip netip.Add Scheme: "https", User: url.UserPassword(p.BuildDomainName(), p.token), Host: "update.dedyn.io", - Path: "/nic/update", + Path: "", } values := url.Values{} values.Set("hostname", utils.BuildURLQueryHostname(p.owner, p.domain)) + if ip.Is6() { + values.Set("myipv6", ip.String()) + values.Set("myipv4", "preserve") + } else { + values.Set("myipv4", ip.String()) + values.Set("myipv6", "preserve") + } values.Set("myip", ip.String()) u.RawQuery = values.Encode()