The "exitcode" variable is set to 9 if a TCP connection fails, but is
not reset to 0 if a subsequent TCP connection succeeds. This causes dig
to return a non-zero exit code if it succeeds in getting a TCP response
after a retry. Fix by resetting "exitcode" to 0 if connect_done()
receives an event with the "result" field set to ISC_R_SUCCESS.
UNLOCK_LOOKUP;
return;
}
+ exitcode = 0;
if (keep_open) {
if (keep != NULL)
isc_socket_detach(&keep);