From 0fabb4576fbbc65231ebde39730529dbf234902f Mon Sep 17 00:00:00 2001 From: Tobias <5702338+T0biii@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:49:57 +0200 Subject: [PATCH] add nodeid and use hostname as cname --- README.md | 4 ++-- generateZonefile.py | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5c4d98a..a0a7d1f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ a subdomain which contains all the Freifunk Router of a Freifunk community so that they are accesible with a name. -It uses a http request to get a meshviewer.json, extracts all the valid hostnames +It uses a http request to get a meshviewer.json, extracts all the valid hostnames and nodeids and outputs a zonefile for a "node domain". ## Installation @@ -52,4 +52,4 @@ cd $DIR cp nodes.ffrn.de.zone /etc/bind/zones/ /usr/sbin/rndc reload nodes.ffrn.de > /dev/null -``` \ No newline at end of file +``` diff --git a/generateZonefile.py b/generateZonefile.py index 1b883b7..4432443 100755 --- a/generateZonefile.py +++ b/generateZonefile.py @@ -11,8 +11,9 @@ class FFNode: - def __init__(self, hostname, addresses, firstseen): + def __init__(self, hostname, nodeid, addresses, firstseen): self.hostname = hostname + self.nodeid = nodeid self.addresses = addresses self.firstseen = firstseen @@ -70,8 +71,13 @@ def main(): hostname_list = [] for node in nodes: for address in node.addresses: - lines.append(LINE_TPL.format(name=node.hostname, type="AAAA", data=address)) - hostname_list.append(node.hostname) + lines.append(LINE_TPL.format(name=node.nodeid, type="AAAA", data=address)) + + if(node.hostname != node.nodeid): + lines.append(LINE_TPL.format(name=node.hostname, type="CNAME", data=node.nodeid)) + hostname_list.append(node.hostname) + + hostname_list.append(node.nodeid) # get a serial number serial = int(time.time()) @@ -153,7 +159,9 @@ def generate_node_hostname(node): warning("not allowed: \t" + node["hostnameLower"] + " " + node["firstseen"]) return - return FFNode(node["hostnameLower"], (addresses_gua if addresses_gua else addresses_ula ), node["firstseen"]) + return FFNode(node["hostnameLower"], node["node_id"], (addresses_gua if addresses_gua else addresses_ula ), node["firstseen"]) + + if __name__ == "__main__":