]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Do not reuse shared TCP dispatches for zone transfers
authorOndřej Surý <ondrej@isc.org>
Thu, 19 Mar 2026 04:06:47 +0000 (05:06 +0100)
committerOndřej Surý <ondrej@isc.org>
Wed, 6 May 2026 13:05:48 +0000 (15:05 +0200)
Zone transfers (XFRIN) need a dedicated TCP connection because they
are long-lived and stream the entire zone.

(cherry picked from commit 6e78094ebd8ebc31b71d62af6671d600aecb68e3)

lib/dns/dispatch.c

index 71613faa3f0b2feb41aee9f11a8b7edec384f946..a08a9f0b43a39ac9cd70c17d6b80d390808dd3eb 100644 (file)
@@ -1302,7 +1302,9 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, const isc_sockaddr_t *localaddr,
 
        isc_result_t result;
 
-       if ((options & DNS_DISPATCHOPT_FIXEDID) == 0) {
+       if ((options & DNS_DISPATCHOPT_FIXEDID) == 0 &&
+           disptype != DNS_DISPATCHTYPE_XFRIN)
+       {
                result = dispatch_gettcp(mgr, localaddr, destaddr, transport,
                                         disptype, dispp);
                if (result == ISC_R_SUCCESS) {