Fix dig error when trying the next server after a TCP connection failure

When encountering a TCP connection error while trying to initiate a
connection to a server, dig erroneously cancels the lookup even when
there are other server(s) to try, which results in an assertion failure.

Cancel the lookup only when there are no more queries left in the
lookup's queries list (i.e. `next` is NULL).

(cherry picked from commit 0fb4fc1897)
This commit is contained in:
Aram Sargsyan 2022-03-13 13:47:16 +00:00
parent 893b6f2404
commit 19787fb752

View file

@ -3293,8 +3293,10 @@ tcp_connected(isc_nmhandle_t *handle, isc_result_t eresult, void *arg) {
next = NULL;
}
cancel_lookup(l);
query_detach(&query);
if (next == NULL) {
cancel_lookup(l);
}
lookup_detach(&l);
if (next != NULL) {