From: Michael Tremer Date: Thu, 6 Oct 2016 09:42:49 +0000 (+0100) Subject: unbound: Correctly format PTR records X-Git-Tag: v2.19-core106~27 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=e22bcd38d6857cd1ee7292cbf634db80d0dd813c unbound: Correctly format PTR records Signed-off-by: Michael Tremer --- diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge index 0ef14e1c3e..c62d23390e 100644 --- a/config/unbound/unbound-dhcp-leases-bridge +++ b/config/unbound/unbound-dhcp-leases-bridge @@ -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