mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Validate that the reverse DNS record is correct
This patch ensures that PTR records added by FreeIPA are compliant with RFC. https://fedorahosted.org/freeipa/ticket/839
This commit is contained in:
committed by
Rob Crittenden
parent
2d97f4b335
commit
23234094c3
@@ -622,6 +622,22 @@ class dnsrecord_add(LDAPCreate, dnsrecord_cmd_w_record_options):
|
|||||||
is_ns_rec_resolvable(ns)
|
is_ns_rec_resolvable(ns)
|
||||||
return dn
|
return dn
|
||||||
|
|
||||||
|
def _ptrrecord_pre_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
|
components = dn.split(',',2)
|
||||||
|
addr = components[0].split('=')[1]
|
||||||
|
zone = components[1].split('=')[1]
|
||||||
|
if zone.find('ip6') != -1:
|
||||||
|
zone = zone.replace('.ip6.arpa.','')
|
||||||
|
zone_len = 32
|
||||||
|
else:
|
||||||
|
zone = zone.replace('.in-addr.arpa.','')
|
||||||
|
zone_len = 4
|
||||||
|
|
||||||
|
if len(addr.split('.'))+len(zone.split('.')) != zone_len:
|
||||||
|
raise errors.ValidationError(name='cn', error=unicode('IP address must have exactly '+str(zone_len)+' components'))
|
||||||
|
|
||||||
|
return dn
|
||||||
|
|
||||||
def pre_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def pre_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
for rtype in options:
|
for rtype in options:
|
||||||
rtype_cb = '_%s_pre_callback' % rtype
|
rtype_cb = '_%s_pre_callback' % rtype
|
||||||
|
|||||||
Reference in New Issue
Block a user