Render empty forwarders for forward zones
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful

A forward zone with no forwarders now renders "forwarders { };", which
BIND accepts and treats as disabling forwarding for the zone.
This commit is contained in:
2026-10-16 23:32:09 +11:00
parent f149b79cce
commit 53cb7fa059
7 changed files with 51 additions and 10 deletions
+9 -3
View File
@@ -154,9 +154,7 @@ func renderForwardZone(z bindv1alpha1.BindZone, indent string) string {
b.WriteString(fmt.Sprintf("%szone \"%s\" {\n", indent, z.Spec.ZoneName))
b.WriteString(indent + " type forward;\n")
b.WriteString(indent + " forward only;\n")
if len(z.Spec.Forwarders) > 0 {
b.WriteString(fmt.Sprintf("%s forwarders { %s };\n", indent, terminate(z.Spec.Forwarders)))
}
b.WriteString(indent + " " + ForwardersClause(z.Spec.Forwarders) + ";\n")
b.WriteString(indent + "};\n")
return b.String()
}
@@ -398,6 +396,14 @@ func terminate(entries []string) string {
return strings.Join(parts, " ")
}
// ForwardersClause renders a zone forwarders clause; empty means "forwarders { }" (no forwarding).
func ForwardersClause(entries []string) string {
if list := terminate(entries); list != "" {
return "forwarders { " + list + " }"
}
return "forwarders { }"
}
func yesno(b bool) string {
if b {
return "yes"