From 72e3a82e9ecb13033de2f8448f744e411cd4dd55 Mon Sep 17 00:00:00 2001 From: "SIPOS, Peter" Date: Mon, 28 Nov 2016 08:39:07 +0100 Subject: [PATCH] Change reverse domain creation order With refactoring the get_reverse_domain_name function, we change the reverse domain checking to a reverse order. In this way we check the lowest class (more specific) reverse zone first. When an existing domain found we use it to create the reverse PTR records. If no one existing can be find, The most specific address will be used. --- app/models.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/models.py b/app/models.py index a3a802a..6878938 100644 --- a/app/models.py +++ b/app/models.py @@ -644,17 +644,21 @@ class Domain(db.Model): return {'status': 'ok', 'msg': 'Reverse lookup domain already exists'} def get_reverse_domain_name(self, reverse_host_address): + c = 1 if re.search('ip6.arpa', reverse_host_address): - for i in range(31,3,-1): + for i in range(1,32,1): address = re.search('((([a-f0-9]\.){'+ str(i) +'})(?P.+6.arpa)\.?)', reverse_host_address) if None != self.get_id_by_name(address.group('ipname')): + c = i break + return re.search('((([a-f0-9]\.){'+ str(c) +'})(?P.+6.arpa)\.?)', reverse_host_address).group('ipname') else: - for i in range(3,0,-1): + for i in range(1,4,1): address = re.search('((([0-9]+\.){'+ str(i) +'})(?P.+r.arpa)\.?)', reverse_host_address) if None != self.get_id_by_name(address.group('ipname')): + c = i break - return address.group('ipname') + return re.search('((([0-9]+\.){'+ str(c) +'})(?P.+r.arpa)\.?)', reverse_host_address).group('ipname') def delete(self, domain_name): """