]> git.ipfire.org Git - dbl.git/commitdiff
exporters: Use an appropriate prefix for the zones
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Dec 2025 11:07:55 +0000 (11:07 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Dec 2025 11:07:55 +0000 (11:07 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/dnsbl/exporters.py
src/dnsbl/lists.py

index dfc6ddf0f534f67cb30c25c5d30944402ef59487..5f579c0a1a113da4d9fa2a904ad7b18347c4929d 100644 (file)
@@ -155,11 +155,14 @@ class ZoneExporter(TextExporter):
                # Write the header
                self.write_header(f, ";")
 
+               # Fetch the zone's origin
+               origin = self.list.zone(prefix=self.prefix)
+
                # Make the serial
                serial = self.list.updated_at.strftime("%s")
 
                # Write $ORIGIN
-               f.write("$ORIGIN %s\n" % self.list.zone)
+               f.write("$ORIGIN %s\n" % origin)
 
                # Set the TTL
                f.write("$TTL %s\n" % ttl)
@@ -191,6 +194,7 @@ class BlocklistExporter(ZoneExporter):
        """
                Exports the list as a regular DNSBL zone file
        """
+       prefix = "dnsbl"
        type = "A"
        content = "127.0.0.2"
 
@@ -199,6 +203,7 @@ class RPZExporter(ZoneExporter):
        """
                Exports the list as a RPZ zone file
        """
+       prefix = "rpz"
        type = "CNAME"
        content = "."
 
index 79ea476fb7f13ddf92893763716b02edd98b42cc..24001da13b708d25fe162e263742411c379fccba 100644 (file)
@@ -202,9 +202,13 @@ class List(sqlmodel.SQLModel, database.BackendMixin, table=True):
                sa_column_kwargs = {"server_default" : sqlmodel.text("CURRENT_TIMESTAMP")}
        )
 
-       @functools.cached_property
-       def zone(self):
-               return "%s.dnsbl.ipfire.org." % self.slug
+       def zone(self, prefix=None):
+               s = (
+                       self.slug, prefix, "ipfire.org.",
+               )
+
+               # Join it all together
+               return ".".join(e for e in s if e)
 
        @property
        def domains(self):