summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-09-27 07:45:32 -0400
committerMartin Kosek <mkosek@redhat.com>2012-09-27 16:01:22 +0200
commitc16c257145e44599df5b833954fc84f946546ea1 (patch)
tree026aa624108810a6426f8d8686c86073ca9ac734
parentebfda866dd3a67ca46afc3f8771670d7e496de5f (diff)
downloadfreeipa-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.py3
-rw-r--r--ipaserver/install/bindinstance.py4
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):