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

lib/dns/dispatch.c

index bef5165a5168156bcfea0b6830c46948a24bb6b7..8dfd4bd3fe247e45b7dd5591b51f69775eb5e6c8 100644 (file)
@@ -1286,7 +1286,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) {