bind9/bin/tests
Aram Sargsyan 1294de8e36 Fix dig hanging issue in cases when the lookup's next query can't start
In recv_done(), when dig decides to start the lookup's next query in
the line using `start_udp()` or `start_tcp()`, and for some reason,
no queries get started, dig doesn't cancel the lookup.

This can occur, for example, when there are two queries in the lookup,
one with a regular IP address, and another with a IPv4 mapped IPv6
address. When the regular IP address fails to serve the query, its
`recv_done()` callback starts the next query in the line (in this
case the one with a mapped IP address), but because `dig` doesn't
connect to such IP addresses, and there are no other queries in the
list, no new queries are being started, and the lookup keeps hanging.

After calling `start_udp()` or `start_tcp()` in `recv_done()`, check
if there are no pending/working queries then cancel the lookup instead
of only detaching from the current query.

(cherry picked from commit 7e2f50c369)
2022-04-04 09:18:46 +00:00
..
startperf Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
system Fix dig hanging issue in cases when the lookup's next query can't start 2022-04-04 09:18:46 +00:00
testdata/wire move all optional tests from bin/tests to bin/tests/optional 2018-03-09 14:12:47 -08:00
.gitignore Refactor TLSDNS module to work with libuv/ssl directly 2021-01-25 09:19:22 +01:00
Makefile.am Avoid using C99 variable length arrays 2022-03-18 16:05:56 +00:00
test_client.c Consistenly use UNREACHABLE() instead of ISC_UNREACHABLE() 2022-03-28 23:27:33 +02:00
test_server.c Consistenly use UNREACHABLE() instead of ISC_UNREACHABLE() 2022-03-28 23:27:33 +02:00
wire_test.c Remove UNREACHABLE() statements after exit() 2022-03-25 10:07:25 +01:00