2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

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.
This commit is contained in:
Evan Hunt
2020-11-02 21:38:56 -08:00
committed by Ondřej Surý
parent 4be63c5b00
commit ea2b04c361
2 changed files with 46 additions and 109 deletions

View File

@@ -368,6 +368,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.
@@ -376,6 +377,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.
*/
@@ -389,6 +391,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));
@@ -848,10 +855,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);
}