a daemon that updates dynamic DNS entries under a number of DNS services
  • Go 95.7%
  • HTML 1.7%
  • NSIS 1.6%
  • Just 0.6%
  • Shell 0.3%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Elisamuel Resto 4f2af47232
fix(provider): a hostname belongs to its zone, and success needs a 2xx
Two ways a record could be published somewhere other than where it was
meant to go, both settled by reading ddclient.

A hostname outside the zone it is filed under is a typo that does not
announce itself. The record is named by what is left when the zone is
taken off the end, so home.example.net under example.com asks the
provider to create home.example.net.example.com, and providers oblige.
ddclient refuses it — "hostname does not end with the zone" — and so does
updyn now, when the service is bound, naming the record that would have
been created. Zones and hostnames are compared without regard to case,
because DNS names are, and a trailing dot is punctuation.

The matchers could also read success out of a reply the server had marked
as an error, because a rule was tried before the status was looked at. A
rule may still explain a failure — a body naming the credential beats
"401" — but it may no longer report success while the server reports an
error. ddclient will not even read a body that arrived with a failing
status: `next if !header_ok($reply)` guards sixty-one of its handlers.

Removes WordMatcher.StatusFirst, which existed for this and was set by
nobody; the rule it asked for is now the only rule there is.
2026-08-17 16:39:03 -05:00
cmd/updyn chore(repo): scaffold updyn module, tooling, and license 2026-08-13 22:16:42 -05:00
internal fix(provider): a hostname belongs to its zone, and success needs a 2xx 2026-08-17 16:39:03 -05:00
packaging fix: back off a record that has never published, and colour it honestly 2026-08-17 14:41:37 -05:00
.gitignore feat(packaging): give the Windows binary a version resource 2026-08-14 14:58:53 -05:00
.golangci.yml feat(catalog): token and query-string providers, and exact name resolution 2026-08-13 23:26:16 -05:00
.goreleaser.yaml feat(packaging): give the Windows binary a version resource 2026-08-14 14:58:53 -05:00
go.mod feat(packaging): give the Windows binary a version resource 2026-08-14 14:58:53 -05:00
go.sum feat(packaging): give the Windows binary a version resource 2026-08-14 14:58:53 -05:00
Justfile fix(packaging): stamp snapshot builds with what git actually says 2026-08-14 02:06:53 -05:00
LICENSE chore(repo): scaffold updyn module, tooling, and license 2026-08-13 22:16:42 -05:00
updyn.example.yaml fix(config,freedns): stop credentials reaching the log and the console 2026-08-17 16:31:17 -05:00