280 lines
9.9 KiB
Diff
280 lines
9.9 KiB
Diff
|
|
From eb2463115fcf033b7756c1eeb036696e0595acbd Mon Sep 17 00:00:00 2001
|
||
|
|
From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@isc.org>
|
||
|
|
Date: Wed, 9 Feb 2022 10:59:08 +0100
|
||
|
|
Subject: [PATCH] Rename sock->timer to sock->read_timer
|
||
|
|
|
||
|
|
Before adding the write timer, we have to remove the generic sock->timer
|
||
|
|
to sock->read_timer. We don't touch the function names to limit the
|
||
|
|
impact of the refactoring.
|
||
|
|
|
||
|
|
(cherry picked from commit 45a73c113f2982b7171632d75d4bbb51d4e6bb53)
|
||
|
|
Conflict: UV_RUNTIME_CHECK to RUNTIME_CHECK
|
||
|
|
Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/eb2463115fcf033b7756c1eeb036696e0595acbd
|
||
|
|
---
|
||
|
|
lib/isc/netmgr/netmgr-int.h | 2 +-
|
||
|
|
lib/isc/netmgr/netmgr.c | 13 +++++++------
|
||
|
|
lib/isc/netmgr/tcp.c | 23 ++++++++++++-----------
|
||
|
|
lib/isc/netmgr/tcpdns.c | 20 +++++++++++---------
|
||
|
|
lib/isc/netmgr/udp.c | 10 +++++-----
|
||
|
|
5 files changed, 36 insertions(+), 32 deletions(-)
|
||
|
|
diff --git a/lib/isc/netmgr/netmgr-int.h b/lib/isc/netmgr/netmgr-int.h
|
||
|
|
index b4299d5..6c6cf13 100644
|
||
|
|
--- a/lib/isc/netmgr/netmgr-int.h
|
||
|
|
+++ b/lib/isc/netmgr/netmgr-int.h
|
||
|
|
@@ -749,7 +749,7 @@ struct isc_nmsocket {
|
||
|
|
/*%
|
||
|
|
* TCP read/connect timeout timers.
|
||
|
|
*/
|
||
|
|
- uv_timer_t timer;
|
||
|
|
+ uv_timer_t read_timer;
|
||
|
|
uint64_t read_timeout;
|
||
|
|
uint64_t connect_timeout;
|
||
|
|
|
||
|
|
diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c
|
||
|
|
index 2867d25..f7acd0c 100644
|
||
|
|
--- a/lib/isc/netmgr/netmgr.c
|
||
|
|
+++ b/lib/isc/netmgr/netmgr.c
|
||
|
|
@@ -1913,7 +1913,7 @@ isc__nm_failed_connect_cb(isc_nmsocket_t *sock, isc__nm_uvreq_t *req,
|
||
|
|
REQUIRE(req->cb.connect != NULL);
|
||
|
|
|
||
|
|
isc__nmsocket_timer_stop(sock);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
INSIST(atomic_compare_exchange_strong(&sock->connecting,
|
||
|
|
&(bool){ true }, false));
|
||
|
|
@@ -2036,7 +2036,7 @@ isc__nmsocket_timer_restart(isc_nmsocket_t *sock) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
- r = uv_timer_start(&sock->timer,
|
||
|
|
+ r = uv_timer_start(&sock->read_timer,
|
||
|
|
isc__nmsocket_connecttimeout_cb,
|
||
|
|
sock->connect_timeout + 10, 0);
|
||
|
|
|
||
|
|
@@ -2045,7 +2045,8 @@ isc__nmsocket_timer_restart(isc_nmsocket_t *sock) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
- r = uv_timer_start(&sock->timer, isc__nmsocket_readtimeout_cb,
|
||
|
|
+ r = uv_timer_start(&sock->read_timer,
|
||
|
|
+ isc__nmsocket_readtimeout_cb,
|
||
|
|
sock->read_timeout, 0);
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -2056,7 +2057,7 @@ bool
|
||
|
|
isc__nmsocket_timer_running(isc_nmsocket_t *sock) {
|
||
|
|
REQUIRE(VALID_NMSOCK(sock));
|
||
|
|
|
||
|
|
- return (uv_is_active((uv_handle_t *)&sock->timer));
|
||
|
|
+ return (uv_is_active((uv_handle_t *)&sock->read_timer));
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
@@ -2076,7 +2077,7 @@ isc__nmsocket_timer_stop(isc_nmsocket_t *sock) {
|
||
|
|
|
||
|
|
/* uv_timer_stop() is idempotent, no need to check if running */
|
||
|
|
|
||
|
|
- int r = uv_timer_stop(&sock->timer);
|
||
|
|
+ int r = uv_timer_stop(&sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -2299,7 +2300,7 @@ isc_nmhandle_cleartimeout(isc_nmhandle_t *handle) {
|
||
|
|
default:
|
||
|
|
handle->sock->read_timeout = 0;
|
||
|
|
|
||
|
|
- if (uv_is_active((uv_handle_t *)&handle->sock->timer)) {
|
||
|
|
+ if (uv_is_active((uv_handle_t *)&handle->sock->read_timer)) {
|
||
|
|
isc__nmsocket_timer_stop(handle->sock);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
diff --git a/lib/isc/netmgr/tcp.c b/lib/isc/netmgr/tcp.c
|
||
|
|
index 1ac7808..7339f77 100644
|
||
|
|
--- a/lib/isc/netmgr/tcp.c
|
||
|
|
+++ b/lib/isc/netmgr/tcp.c
|
||
|
|
@@ -138,8 +138,9 @@ tcp_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
uv_handle_set_data(&sock->uv_handle.handle, sock);
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
r = uv_tcp_open(&sock->uv_handle.tcp, sock->fd);
|
||
|
|
if (r != 0) {
|
||
|
|
@@ -168,7 +169,8 @@ tcp_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||
|
|
}
|
||
|
|
isc__nm_incstats(sock->mgr, sock->statsindex[STATID_CONNECT]);
|
||
|
|
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, &req->uv_req.connect);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer,
|
||
|
|
+ &req->uv_req.connect);
|
||
|
|
isc__nmsocket_timer_start(sock);
|
||
|
|
|
||
|
|
atomic_store(&sock->connected, true);
|
||
|
|
@@ -229,7 +231,7 @@ tcp_connect_cb(uv_connect_t *uvreq, int status) {
|
||
|
|
REQUIRE(sock->tid == isc_nm_tid());
|
||
|
|
|
||
|
|
isc__nmsocket_timer_stop(sock);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
if (!atomic_load(&sock->connecting)) {
|
||
|
|
return;
|
||
|
|
@@ -524,10 +526,10 @@ isc__nm_async_tcplisten(isc__networker_t *worker, isc__netievent_t *ev0) {
|
||
|
|
/* This keeps the socket alive after everything else is gone */
|
||
|
|
isc__nmsocket_attach(sock, &(isc_nmsocket_t *){ NULL });
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
LOCK(&sock->parent->lock);
|
||
|
|
|
||
|
|
@@ -965,9 +967,9 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
uv_handle_set_data(&csock->uv_handle.handle, csock);
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &csock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &csock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&csock->timer, csock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&csock->read_timer, csock);
|
||
|
|
|
||
|
|
r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
|
||
|
|
if (r != 0) {
|
||
|
|
@@ -1269,8 +1271,8 @@ tcp_close_direct(isc_nmsocket_t *sock) {
|
||
|
|
isc__nmsocket_timer_stop(sock);
|
||
|
|
isc__nm_stop_reading(sock);
|
||
|
|
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
- uv_close((uv_handle_t *)&sock->timer, timer_close_cb);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
+ uv_close((uv_handle_t *)&sock->read_timer, timer_close_cb);
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
@@ -1388,7 +1390,7 @@ isc__nm_async_tcpcancel(isc__networker_t *worker, isc__netievent_t *ev0) {
|
||
|
|
REQUIRE(sock->tid == isc_nm_tid());
|
||
|
|
UNUSED(worker);
|
||
|
|
|
||
|
|
- uv_timer_stop(&sock->timer);
|
||
|
|
+ uv_timer_stop(&sock->read_timer);
|
||
|
|
|
||
|
|
isc__nm_tcp_failed_read_cb(sock, ISC_R_EOF);
|
||
|
|
}
|
||
|
|
diff --git a/lib/isc/netmgr/tcpdns.c b/lib/isc/netmgr/tcpdns.c
|
||
|
|
index 7f66da0..7aaaee9 100644
|
||
|
|
--- a/lib/isc/netmgr/tcpdns.c
|
||
|
|
+++ b/lib/isc/netmgr/tcpdns.c
|
||
|
|
@@ -103,8 +103,9 @@ tcpdns_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
uv_handle_set_data(&sock->uv_handle.handle, sock);
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
if (isc__nm_closing(sock)) {
|
||
|
|
result = ISC_R_CANCELED;
|
||
|
|
@@ -142,7 +143,8 @@ tcpdns_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||
|
|
}
|
||
|
|
isc__nm_incstats(sock->mgr, sock->statsindex[STATID_CONNECT]);
|
||
|
|
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, &req->uv_req.connect);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer,
|
||
|
|
+ &req->uv_req.connect);
|
||
|
|
isc__nmsocket_timer_start(sock);
|
||
|
|
|
||
|
|
atomic_store(&sock->connected, true);
|
||
|
|
@@ -203,7 +205,7 @@ tcpdns_connect_cb(uv_connect_t *uvreq, int status) {
|
||
|
|
REQUIRE(sock->tid == isc_nm_tid());
|
||
|
|
|
||
|
|
isc__nmsocket_timer_stop(sock);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
if (!atomic_load(&sock->connecting)) {
|
||
|
|
return;
|
||
|
|
@@ -494,9 +496,9 @@ isc__nm_async_tcpdnslisten(isc__networker_t *worker, isc__netievent_t *ev0) {
|
||
|
|
/* This keeps the socket alive after everything else is gone */
|
||
|
|
isc__nmsocket_attach(sock, &(isc_nmsocket_t *){ NULL });
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
LOCK(&sock->parent->lock);
|
||
|
|
|
||
|
|
@@ -939,9 +941,9 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
uv_handle_set_data(&csock->uv_handle.handle, csock);
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &csock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &csock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&csock->timer, csock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&csock->read_timer, csock);
|
||
|
|
|
||
|
|
r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
|
||
|
|
if (r != 0) {
|
||
|
|
@@ -1292,8 +1294,8 @@ tcpdns_close_direct(isc_nmsocket_t *sock) {
|
||
|
|
isc__nmsocket_timer_stop(sock);
|
||
|
|
isc__nm_stop_reading(sock);
|
||
|
|
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
- uv_close((uv_handle_t *)&sock->timer, timer_close_cb);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
+ uv_close((uv_handle_t *)&sock->read_timer, timer_close_cb);
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
diff --git a/lib/isc/netmgr/udp.c b/lib/isc/netmgr/udp.c
|
||
|
|
index a91c425..d33dc4c 100644
|
||
|
|
--- a/lib/isc/netmgr/udp.c
|
||
|
|
+++ b/lib/isc/netmgr/udp.c
|
||
|
|
@@ -226,9 +226,9 @@ isc__nm_async_udplisten(isc__networker_t *worker, isc__netievent_t *ev0) {
|
||
|
|
/* This keeps the socket alive after everything else is gone */
|
||
|
|
isc__nmsocket_attach(sock, &(isc_nmsocket_t *){ NULL });
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
LOCK(&sock->parent->lock);
|
||
|
|
|
||
|
|
@@ -624,9 +624,9 @@ udp_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
uv_handle_set_data(&sock->uv_handle.handle, sock);
|
||
|
|
|
||
|
|
- r = uv_timer_init(&worker->loop, &sock->timer);
|
||
|
|
+ r = uv_timer_init(&worker->loop, &sock->read_timer);
|
||
|
|
RUNTIME_CHECK(r == 0);
|
||
|
|
- uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
|
||
|
|
+ uv_handle_set_data((uv_handle_t *)&sock->read_timer, sock);
|
||
|
|
|
||
|
|
r = uv_udp_open(&sock->uv_handle.udp, sock->fd);
|
||
|
|
if (r != 0) {
|
||
|
|
@@ -1038,7 +1038,7 @@ udp_close_direct(isc_nmsocket_t *sock) {
|
||
|
|
REQUIRE(VALID_NMSOCK(sock));
|
||
|
|
REQUIRE(sock->tid == isc_nm_tid());
|
||
|
|
|
||
|
|
- uv_close((uv_handle_t *)&sock->timer, timer_close_cb);
|
||
|
|
+ uv_close((uv_handle_t *)&sock->read_timer, timer_close_cb);
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|