From: Michael Tokarev <mjt@tls.msk.ru>
Date: Tue, 3 Jun 2025 09:41:57 +0300
Subject: s4/dlz: add support for bind 9.20
Forwarded: yes, https://gitlab.com/samba-team/samba/-/merge_requests/4067
Bug-Debian: https://bugs.debian.org/1107139

bind dlz interface does not change much, yet we build
dlz_bind9_NN for every bind9 version NN we support -
despite many of them differ only in soversion, with
the code being identical.

For bind9_20, use dlz_bind9_18.so which we already have.

It'd be nice to extract actual bind9 version string in
sambadns.py and use it in more direct way.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=15790
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
 python/samba/provision/sambadns.py | 3 ++-
 source4/setup/named.conf.dlz       | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py
index 952e875c862..a3515bbe37b 100644
--- a/python/samba/provision/sambadns.py
+++ b/python/samba/provision/sambadns.py
@@ -1030,7 +1030,8 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger):
             bind9_14 = ''
         elif bind_info.upper().find('BIND 9.16') != -1:
             bind9_16 = ''
-        elif bind_info.upper().find('BIND 9.18') != -1:
+        elif bind_info.upper().find('BIND 9.18') != -1 \
+          or bind_info.upper().find('BIND 9.20') != -1:
             bind9_18 = ''
         elif bind_info.upper().find('BIND 9.7') != -1:
             raise ProvisioningError("DLZ option incompatible with BIND 9.7.")
diff --git a/source4/setup/named.conf.dlz b/source4/setup/named.conf.dlz
index cbe7d805f58..9753cdc503b 100644
--- a/source4/setup/named.conf.dlz
+++ b/source4/setup/named.conf.dlz
@@ -30,8 +30,8 @@ dlz "AD DNS Zone" {
 
     # For BIND 9.16.x
     ${BIND9_16} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_16.so";
-    #
-    # For BIND 9.18.x
+
+    # For BIND 9.18.x and 9.20.x
     ${BIND9_18} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_18.so";
 };
 
-- 
2.39.5

