From 544f1559482df99a0c8a0ffd29f929efe12e8e4d Mon Sep 17 00:00:00 2001 From: John Olten Date: Sun, 5 Nov 2017 18:22:59 +0100 Subject: [PATCH] Add support for DNS wildcard [merges #1281] --- CHANGELOG.md | 7 +++++++ management/dns_update.py | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f48eef..b208685 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +In Development +-------------- + +Control Panel: + +* Fix DNS validation to allow wildcard custom DNS entries to be set. + v0.24 (October 3, 2017) ----------------------- diff --git a/management/dns_update.py b/management/dns_update.py index aa0ee60..8940bdf 100755 --- a/management/dns_update.py +++ b/management/dns_update.py @@ -14,9 +14,9 @@ from utils import shell, load_env_vars_from_file, safe_domain_name, sort_domains # From https://stackoverflow.com/questions/3026957/how-to-validate-a-domain-name-using-regex-php/16491074#16491074 # This regular expression matches domain names according to RFCs, it also accepts fqdn with an leading dot, -# as well as underscores which are allowed in domain names but not hostnames (i.e. allowed in +# underscores, as well as asteriks which are allowed in domain names but not hostnames (i.e. allowed in # DNS but not in URLs), which are common in certain record types like for DKIM. -DOMAIN_RE = "^(?!\-)(?:[a-zA-Z\d\-_]{0,62}[a-zA-Z\d_]\.){1,126}(?!\d+)[a-zA-Z\d_]{1,63}(\.?)$" +DOMAIN_RE = "^(?!\-)(?:[*][.])?(?:[a-zA-Z\d\-_]{0,62}[a-zA-Z\d_]\.){1,126}(?!\d+)[a-zA-Z\d_]{1,63}(\.?)$" def get_dns_domains(env): # Add all domain names in use by email users and mail aliases and ensure