]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
unbound: Correctly format PTR records
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2016 09:42:49 +0000 (10:42 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2016 09:42:49 +0000 (10:42 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/unbound/unbound-dhcp-leases-bridge

index 0ef14e1c3e1e7a28967a8f063fdc031699869b12..c62d23390e78d48e63dbe8786d9a0b3dd44aca48 100644 (file)
@@ -49,6 +49,20 @@ def setup_logging(loglevel=logging.INFO):
 
 log = logging.getLogger("dhcp")
 
+def ip_address_to_reverse_pointer(address):
+       parts = address.split(".")
+       parts.reverse()
+
+       return "%s.in-addr.arpa" % ".".join(parts)
+
+def reverse_pointer_to_ip_address(rr):
+       parts = rr.split(".")
+
+       # Only take IP address part
+       parts = reversed(parts[0:4])
+
+       return ".".join(parts)
+
 class UnboundDHCPLeasesBridge(object):
        def __init__(self, dhcp_leases_file, unbound_leases_file):
                self.leases_file = dhcp_leases_file
@@ -301,7 +315,8 @@ class Lease(object):
                        (self.fqdn, "%s" % LOCAL_TTL, "IN A", self.ipaddr),
 
                        # Reverse record
-                       (self.ipaddr, "%s" % LOCAL_TTL, "IN PTR", self.fqdn),
+                       (ip_address_to_reverse_pointer(self.ipaddr), "%s" % LOCAL_TTL,
+                               "IN PTR", self.fqdn),
                ]
 
 
@@ -333,7 +348,7 @@ class UnboundConfigWriter(object):
                        if record_type == "A":
                                ret[hostname] = content
                        elif record_type == "PTR":
-                               ret[content] = hostname
+                               ret[content] = reverse_pointer_to_ip_address(hostname)
 
                return ret