diff options
author | Petr Viktorin <pviktori@redhat.com> | 2012-09-27 07:45:32 -0400 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-09-27 16:01:22 +0200 |
commit | c16c257145e44599df5b833954fc84f946546ea1 (patch) | |
tree | 026aa624108810a6426f8d8686c86073ca9ac734 | |
parent | ebfda866dd3a67ca46afc3f8771670d7e496de5f (diff) | |
download | freeipa-c16c257145e44599df5b833954fc84f946546ea1.tar.gz freeipa-c16c257145e44599df5b833954fc84f946546ea1.tar.xz freeipa-c16c257145e44599df5b833954fc84f946546ea1.zip |
Fix NS records in installation
Our installation added two final dots to the NS records,
so the records were invalid, Bind ignored the entire zone,
and name resolution didn't work.
Fix this error and add a check for empty DNS labels to the validator
-rw-r--r-- | ipalib/util.py | 3 | ||||
-rw-r--r-- | ipaserver/install/bindinstance.py | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ipalib/util.py b/ipalib/util.py index 53b6c80c5..ca14aee36 100644 --- a/ipalib/util.py +++ b/ipalib/util.py @@ -266,6 +266,9 @@ def validate_hostname(hostname, check_fqdn=True, allow_underscore=False): if hostname.endswith('.'): hostname = hostname[:-1] + if '..' in hostname: + raise ValueError(_('hostname contains empty label (consecutive dots)')) + if '.' not in hostname: if check_fqdn: raise ValueError(_('not fully qualified')) diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py index 9f6dca525..f43a9ff0f 100644 --- a/ipaserver/install/bindinstance.py +++ b/ipaserver/install/bindinstance.py @@ -326,7 +326,9 @@ def add_ptr_rr(zone, ip_address, fqdn, dns_backup=None): add_rr(zone, name, "PTR", fqdn+".", dns_backup) def add_ns_rr(zone, hostname, dns_backup=None, force=True): - add_rr(zone, "@", "NS", hostname+'.', dns_backup=dns_backup, + if not hostname.endswith('.'): + hostname += '.' + add_rr(zone, "@", "NS", hostname, dns_backup=dns_backup, force=force) def del_rr(zone, name, type, rdata): |