diff options
author | Martin Kosek <mkosek@redhat.com> | 2012-02-03 10:01:27 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-02-03 16:25:05 +0100 |
commit | 8f17a9ff975a20ad5c8691b11815a45dd11f4707 (patch) | |
tree | b959454ea6ded93916132e94b6e3f67a3488026e /ipalib | |
parent | 16d17f48dfc81f47d91696d8678699f88f10ae4c (diff) | |
download | freeipa.git-8f17a9ff975a20ad5c8691b11815a45dd11f4707.tar.gz freeipa.git-8f17a9ff975a20ad5c8691b11815a45dd11f4707.tar.xz freeipa.git-8f17a9ff975a20ad5c8691b11815a45dd11f4707.zip |
Fix TXT record parsing
TXT record validation fails to parse the record if it contains
spaces. Standard DNS part parser uses a space to divide record
parts. A special parser thus need to be implemented for this RR
type.
https://fedorahosted.org/freeipa/ticket/2306
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/plugins/dns.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py index da4934fc..d51c2c30 100644 --- a/ipalib/plugins/dns.py +++ b/ipalib/plugins/dns.py @@ -1003,6 +1003,10 @@ class TXTRecord(DNSRecord): ), ) + def _get_part_values(self, value): + # ignore any space in TXT record + return (value,) + _dns_records = ( ARecord(), AAAARecord(), @@ -1536,6 +1540,8 @@ class dnsrecord(LDAPObject): u'dnsdata' : dnsvalue } values = param._get_part_values(dnsvalue) + if values is None: + continue for val_id, val in enumerate(values): if val is not None: dnsentry[parts_params[val_id].name] = val |