]> mj.ucw.cz Git - pynsc.git/commitdiff
Better zone headers
authorMartin Mares <mj@ucw.cz>
Sun, 21 Apr 2024 15:56:03 +0000 (17:56 +0200)
committerMartin Mares <mj@ucw.cz>
Sun, 21 Apr 2024 15:56:03 +0000 (17:56 +0200)
TODO
nsconfig/core.py

diff --git a/TODO b/TODO
index 4764f92249cc1aaaf52723fc3732d41efe3af87e..5a8e10178a6f2803b8c401a2328b1fe8d349eac9 100644 (file)
--- a/TODO
+++ b/TODO
@@ -3,7 +3,6 @@
 - Classless reverse delegation
 - Blackhole zones
 - DNSSEC
-- Auto-generated files should contain a comment saying so
 - Automated generation of Null MX
 - Bind: custom config
 - Logging
index 7613061f591443885c21c3c746952a40ffa74ad5..1ea70551019e7c71fc718022a667a15cefdad363 100644 (file)
@@ -261,10 +261,16 @@ class NscZonePrimary(NscZone):
         n.A(*args, reverse=reverse)
         return n
 
+    def zone_header(self) -> str:
+        return (
+            f'; Zone file for {self.name}\n'
+            + '; Generated by NSC, please do not edit manually.\n'
+            + '\n')
+
     def dump(self, file: Optional[TextIO] = None) -> None:
         # Could use self.zone.to_file(sys.stdout), but we want better formatting
         file = file or sys.stdout
-        file.write(f'; Zone file for {self.name}\n\n')
+        file.write(self.zone_header())
         last_name = None
         for name, ttl, rec in self.zone.iterate_rdatas():
             if name == last_name:
@@ -290,6 +296,7 @@ class NscZonePrimary(NscZone):
 
     def gen_hash(self) -> None:
         sha = hashlib.sha1()
+        sha.update(self.zone_header().encode('us-ascii'))
         for name, ttl, rec in self.zone.iterate_rdatas():
             text = f'{name}\t{ttl}\t{rec.rdtype.name}\t{rec.to_text()}\n'
             sha.update(text.encode('us-ascii'))