dnscontrol/models
Tom Limoncelli 1b2f5d4d34
BUGFIX: IDN support is broken for domain names (#3845)
# Issue

Fixes https://github.com/StackExchange/dnscontrol/issues/3842

CC @das7pad

# Resolution

Convert domain.Name to IDN earlier in the pipeline. Hack the --domains
processing to convert everything to IDN.

* Domain names are now stored 3 ways: The original input from
dnsconfig.js, canonical IDN format (`xn--...`), and Unicode format. All
are downcased. Providers that haven't been updated will receive the IDN
format instead of the original input format. This might break some
providers but only for users with unicode in their D("domain.tld").
PLEASE TEST YOUR PROVIDER.
* BIND filename formatting options have been added to access the new
formats.

# Breaking changes

* BIND zonefiles may change. The default used the name input in the D()
statement. It now defaults to the IDN name + "!tag" if there is a tag.
* Providers that are not IDN-aware may break (hopefully only if they
weren't processing IDN already)

---------

Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-11-29 12:17:44 -05:00
..
dns.go BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
dns_test.go REFACTOR: export models func downcase() (#2207) 2023-03-21 22:11:25 -07:00
dnsrr.go NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) 2025-10-10 11:16:13 -04:00
domain.go BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
provider.go Bugfix: Providers with batched updates might not report the correct number of changes (#3108) 2024-09-16 12:20:30 -04:00
quotes.go REFACTOR: Opinion: TXT records are one long string (#2631) 2023-12-04 17:45:25 -05:00
quotes_test.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
rawrecord.go CLOUDFLAREAPI: Add CF_SINGLE_REDIRECT to manage "dynamic single" redirects (#3035) 2024-07-08 12:38:38 -04:00
record.go AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
record_test.go feat(validation): Validation errors now include the line number (#3788) 2025-10-10 13:48:41 -04:00
recorddb.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
recordtype.go refactor(RecordConfig): Use ChangeType() instead of assignment (#3441) 2025-02-18 14:01:34 -05:00
t_caa.go BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
t_dnskey.go NEW RECORD TYPE: DNSKEY (#2917) 2024-04-22 09:54:12 -04:00
t_ds.go GANDI_V5: supports DS records already (#1112) 2021-03-29 10:04:36 -04:00
t_loc.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_mx.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_naptr.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_parse.go AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
t_smimea.go NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) 2025-10-10 11:16:13 -04:00
t_soa.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_srv.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_sshfp.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_svcb.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_tlsa.go CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
t_txt.go POWERDNS: New record type: LUA (#3815) 2025-11-03 11:32:28 -05:00
target.go AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
tdwarn.go linting (#693) 2020-03-10 16:53:17 -04:00
tonameservers_test.go CHORE: Linting (#1704) 2022-08-14 20:46:56 -04:00
unknown.go CHORE: Linting and comment-fixing (#2937) 2024-05-07 14:47:28 -04:00
unmanaged.go deadcode: DebugUnmanagedConfig 2024-03-03 15:42:49 -05:00