Skip to content

Unify dig +nssearch next query starting code for TCP and UDP protocols

In +nssearch mode dig starts the next query of the followup lookup using start_udp() or start_tcp() calls without waiting for the previous query to complete.

In UDP mode that happens in the send_done() callback of the previous query, but in TCP mode that happens in the start_tcp() call of the previous query (recursion) which doesn't work because start_tcp() attaches the lookup->current_query to the query it is starting, so a recursive call will result in an assertion failure.

Make the TCP mode to start the next query in send_done(), just like in the UDP mode. During that time the lookup->current_query is already detached by the tcp_connected()/udp_ready() callbacks.

Closes #3144 (closed)

Edited by Arаm Sаrgsyаn

Merge request reports