From: Evan Hunt Date: Tue, 3 Nov 2020 05:38:56 +0000 (-0800) Subject: dig: use new netmgr timeout mechanism X-Git-Tag: v9.16.11~17^2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70e08cab6b7f0725bb2a9749c33f3717aaae3ab1;p=thirdparty%2Fbind9.git dig: use new netmgr timeout mechanism use isc_nmhandle_settimeout() to set read/recv timeouts, and get rid of connect_timeout() and related functions in dighost.c. (cherry picked from commit ea2b04c361c29cdad80c92877184b063f23002d0) --- diff --git a/lib/isc/netmgr/udp.c b/lib/isc/netmgr/udp.c index 7cc78f0e3db..27e11fc1656 100644 --- a/lib/isc/netmgr/udp.c +++ b/lib/isc/netmgr/udp.c @@ -366,6 +366,7 @@ udp_recv_cb(uv_udp_t *handle, ssize_t nrecv, const uv_buf_t *buf, if (addr == NULL) { goto done; } + /* * - If we're simulating a firewall blocking UDP packets * bigger than 'maxudp' bytes for testing purposes. @@ -374,6 +375,7 @@ udp_recv_cb(uv_udp_t *handle, ssize_t nrecv, const uv_buf_t *buf, if ((maxudp != 0 && (uint32_t)nrecv > maxudp)) { goto done; } + /* * - If the socket is no longer active. */ @@ -387,6 +389,11 @@ udp_recv_cb(uv_udp_t *handle, ssize_t nrecv, const uv_buf_t *buf, cb = sock->recv_cb; cbarg = sock->recv_cbarg; + if (sock->timer_running) { + uv_timer_stop(&sock->timer); + sock->timer_running = false; + } + if (atomic_load(&sock->client)) { if (nrecv < 0) { failed_read_cb(sock, isc__nm_uverr2result(nrecv)); @@ -846,10 +853,6 @@ udp_read_cb(uv_udp_t *handle, ssize_t nrecv, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags) { isc_nmsocket_t *sock = uv_handle_get_data((uv_handle_t *)handle); - if (sock->timer_running) { - uv_timer_stop(&sock->timer); - sock->timer_running = false; - } udp_recv_cb(handle, nrecv, buf, addr, flags); uv_udp_recv_stop(&sock->uv_handle.udp); }