]> Sergey Matveev's repositories - zdns.git/blobdiff - rc.tcl
Aggregate CAAs
[zdns.git] / rc.tcl
diff --git a/rc.tcl b/rc.tcl
index db37fea2612abfc52a5c99f7538e19c68b7a864e..99bb0b65c276685f5c3c54db3e56c52d6999158c 100644 (file)
--- a/rc.tcl
+++ b/rc.tcl
@@ -10,6 +10,7 @@ set NS1 uz544mqwggqbf3z4utlhfqn45vpbpq78nc63hpg5u2ut29stkt0pkr.ns7.stargrave.org
 set NS2 uz5nulnd504gp3s7sdmdl5l2gxc762hpw926t90k39ltxp67flbccn.ns5.stargrave.org.
 
 set NoSPF {"v=spf1 -all"}
+set NoMX "MX 0 ."
 set ReSPF {"v=spf1 redirect=_spf.stargrave.org"}
 
 proc zone {serial} {
@@ -58,15 +59,19 @@ proc dane {dn {port 443}} {
     set dn [fqdn $dn]
     set dirname [string trimright $dn .]
     set was [pwd]
+    set caas [list]
     cd tls
     foreach ca [lsort [glob ca/*/*]] {
         set ca [join [lrange [split $ca /] 1 end] /]
         set ee [file join ee $ca $dirname]
         if {![file exists $ee]} { continue }
-        puts "[shorten $dn] CAA 0 issue \"[lindex [split $ca /] end]\""
+        set caas [lappend $caas [lindex [split $ca /] end]]
         puts "[shorten _$port._tcp.$dn] TLSA 3 1 1 [exec zeasypki dane $ee]"
     }
     cd $was
+    foreach ca [lsort -unique $caas] {
+        puts "[shorten $dn] CAA 0 issue \"$ca\""
+    }
 }
 
 proc ssh {dn} {
@@ -97,13 +102,17 @@ proc subdomain {dn addrs {flags {}}} {
     dane $dn $danePort
     ssh $dn
 
-    global NoSPF
-    if {[lsearch $flags nospf] == -1} { puts "$short TXT $NoSPF" }
+    global NoSPF NoMX
+    if {[lsearch $flags mailable] == -1} {
+        puts "$short TXT $NoSPF"
+        puts "$short $NoMX"
+    }
     if {[lsearch $flags y] != -1} {
         global Y6
         set short [shorten y.[fqdn $dn]]
         puts "$short AAAA $Y6"
         puts "$short TXT $NoSPF"
+        puts "$short $NoMX"
         ssh $short
     }
 }