Skip to content

Handle the transient TCP connect() failures on FreeBSD [v9.18]

On FreeBSD (and perhaps other *BSD) systems, the TCP connect() call (via uv_tcp_connect()) can fail with transient UV_EADDRINUSE error. The UDP code already handles this by trying three times (is a charm) before giving up. Add a code for the TCP, TCPDNS and TLSDNS layers to also try three times before giving up by calling uv_tcp_connect() from the callback two more time on UV_EADDRINUSE error.

Additionally, stop the timer only if we succeed or on hard error via isc__nm_failed_connect_cb().

(cherry picked from commit b21f507c)

Closes #3451 (closed)

Edited by Ondřej Surý

Merge request reports