diff --git a/CHANGES b/CHANGES index 79d80da2a2..c19f1609f9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4313. [bug] Handle ns_client_replace failures in test mode. + [RT #41190] + 4312. [bug] dig's unknown dns and edns flags (MBZ value) logging was not consistent. [RT #41600] diff --git a/bin/named/query.c b/bin/named/query.c index c764c75d53..136a7ea2cd 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -8489,8 +8489,16 @@ ns_query_start(ns_client_t *client) { /* * Test only. */ - if (ns_g_clienttest && (client->attributes & NS_CLIENTATTR_TCP) == 0) - RUNTIME_CHECK(ns_client_replace(client) == ISC_R_SUCCESS); + if (ns_g_clienttest && !TCP(client)) { + result = ns_client_replace(client); + if (result == ISC_R_SHUTTINGDOWN) { + ns_client_next(client, result); + return; + } else if (result != ISC_R_SUCCESS) { + query_error(client, result, __LINE__); + return; + } + } /* * Ensure that appropriate cleanups occur.