]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use UV_RUNTIME_CHECK() as appropriate
authorOndřej Surý <ondrej@isc.org>
Tue, 15 Feb 2022 13:51:02 +0000 (14:51 +0100)
committerOndřej Surý <ondrej@isc.org>
Wed, 16 Feb 2022 10:48:30 +0000 (11:48 +0100)
Replace the RUNTIME_CHECK() calls for libuv API calls with
UV_RUNTIME_CHECK() to get more detailed error message when
something fails and should not.

(cherry picked from commit 8715be1e4b51a4f74e5d4fedbb78995b5bbccb84)

lib/isc/netmgr/netmgr.c
lib/isc/netmgr/tcp.c
lib/isc/netmgr/tcpdns.c
lib/isc/netmgr/udp.c

index b762684ce92e227070885d0511003869877628c4..4b9e2a5ecc3a9d8acad192139392d1de7ec2697b 100644 (file)
@@ -326,20 +326,21 @@ isc__netmgr_create(isc_mem_t *mctx, uint32_t workers, isc_nm_t **netmgrp) {
 
        mgr->workers = isc_mem_get(mctx, workers * sizeof(isc__networker_t));
        for (size_t i = 0; i < workers; i++) {
-               int r;
                isc__networker_t *worker = &mgr->workers[i];
+               int r;
+
                *worker = (isc__networker_t){
                        .mgr = mgr,
                        .id = i,
                };
 
                r = uv_loop_init(&worker->loop);
-               RUNTIME_CHECK(r == 0);
+               UV_RUNTIME_CHECK(uv_loop_init, r);
 
                worker->loop.data = &mgr->workers[i];
 
                r = uv_async_init(&worker->loop, &worker->async, async_cb);
-               RUNTIME_CHECK(r == 0);
+               UV_RUNTIME_CHECK(uv_async_init, r);
 
                isc_mutex_init(&worker->lock);
                isc_condition_init(&worker->cond_prio);
@@ -415,7 +416,7 @@ nm_destroy(isc_nm_t **mgr0) {
                isc_mutex_destroy(&worker->lock);
 
                r = uv_loop_close(&worker->loop);
-               INSIST(r == 0);
+               UV_RUNTIME_CHECK(uv_loop_close, r);
 
                for (size_t type = 0; type < NETIEVENT_MAX; type++) {
                        isc_queue_destroy(worker->ievents[type]);
@@ -1995,11 +1996,11 @@ isc__nmsocket_readtimeout_cb(uv_timer_t *timer) {
 
 void
 isc__nmsocket_timer_restart(isc_nmsocket_t *sock) {
-       int r = 0;
-
        REQUIRE(VALID_NMSOCK(sock));
 
        if (atomic_load(&sock->connecting)) {
+               int r;
+
                if (sock->connect_timeout == 0) {
                        return;
                }
@@ -2007,17 +2008,19 @@ isc__nmsocket_timer_restart(isc_nmsocket_t *sock) {
                r = uv_timer_start(&sock->timer,
                                   isc__nmsocket_connecttimeout_cb,
                                   sock->connect_timeout + 10, 0);
+               UV_RUNTIME_CHECK(uv_timer_start, r);
 
        } else {
+               int r;
+
                if (sock->read_timeout == 0) {
                        return;
                }
 
                r = uv_timer_start(&sock->timer, isc__nmsocket_readtimeout_cb,
                                   sock->read_timeout, 0);
+               UV_RUNTIME_CHECK(uv_timer_start, r);
        }
-
-       RUNTIME_CHECK(r == 0);
 }
 
 bool
@@ -2040,12 +2043,14 @@ isc__nmsocket_timer_start(isc_nmsocket_t *sock) {
 
 void
 isc__nmsocket_timer_stop(isc_nmsocket_t *sock) {
+       int r;
+
        REQUIRE(VALID_NMSOCK(sock));
 
        /* uv_timer_stop() is idempotent, no need to check if running */
 
-       int r = uv_timer_stop(&sock->timer);
-       RUNTIME_CHECK(r == 0);
+       r = uv_timer_stop(&sock->timer);
+       UV_RUNTIME_CHECK(uv_timer_stop, r);
 }
 
 isc__nm_uvreq_t *
@@ -2127,20 +2132,22 @@ isc__nm_start_reading(isc_nmsocket_t *sock) {
        case isc_nm_udpsocket:
                r = uv_udp_recv_start(&sock->uv_handle.udp, isc__nm_alloc_cb,
                                      isc__nm_udp_read_cb);
+               UV_RUNTIME_CHECK(uv_udp_recv_start, r);
                break;
        case isc_nm_tcpsocket:
                r = uv_read_start(&sock->uv_handle.stream, isc__nm_alloc_cb,
                                  isc__nm_tcp_read_cb);
+               UV_RUNTIME_CHECK(uv_read_start, r);
                break;
        case isc_nm_tcpdnssocket:
                r = uv_read_start(&sock->uv_handle.stream, isc__nm_alloc_cb,
                                  isc__nm_tcpdns_read_cb);
+               UV_RUNTIME_CHECK(uv_read_start, r);
                break;
        default:
                INSIST(0);
                ISC_UNREACHABLE();
        }
-       RUNTIME_CHECK(r == 0);
        sock->reading = true;
 }
 
@@ -2155,16 +2162,17 @@ isc__nm_stop_reading(isc_nmsocket_t *sock) {
        switch (sock->type) {
        case isc_nm_udpsocket:
                r = uv_udp_recv_stop(&sock->uv_handle.udp);
+               UV_RUNTIME_CHECK(uv_udp_recv_stop, r);
                break;
        case isc_nm_tcpsocket:
        case isc_nm_tcpdnssocket:
                r = uv_read_stop(&sock->uv_handle.stream);
+               UV_RUNTIME_CHECK(uv_read_stop, r);
                break;
        default:
                INSIST(0);
                ISC_UNREACHABLE();
        }
-       RUNTIME_CHECK(r == 0);
        sock->reading = false;
 }
 
@@ -3143,7 +3151,7 @@ isc_nm_work_offload(isc_nm_t *netmgr, isc_nm_workcb_t work_cb,
 
        r = uv_queue_work(&worker->loop, &work->req, isc__nm_work_cb,
                          isc__nm_after_work_cb);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_queue_work, r);
 }
 
 #ifdef NETMGR_TRACE
index 133d6d9e6139c7460e25640739c4c9213d0c750f..195a83d92efc321010b23996e0547f0fb333b18d 100644 (file)
@@ -137,11 +137,11 @@ tcp_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
        RUNTIME_CHECK(result == ISC_R_SUCCESS);
 
        r = uv_tcp_init(&worker->loop, &sock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
        uv_handle_set_data(&sock->uv_handle.handle, sock);
 
        r = uv_timer_init(&worker->loop, &sock->timer);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
 
        r = uv_tcp_open(&sock->uv_handle.tcp, sock->fd);
        if (r != 0) {
@@ -520,14 +520,14 @@ isc__nm_async_tcplisten(isc__networker_t *worker, isc__netievent_t *ev0) {
        /* TODO: set min mss */
 
        r = uv_tcp_init(&worker->loop, &sock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
 
        uv_handle_set_data(&sock->uv_handle.handle, sock);
        /* 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);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
 
        uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
 
@@ -973,11 +973,11 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
        worker = &csock->mgr->workers[isc_nm_tid()];
 
        r = uv_tcp_init(&worker->loop, &csock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
        uv_handle_set_data(&csock->uv_handle.handle, csock);
 
        r = uv_timer_init(&worker->loop, &csock->timer);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
        uv_handle_set_data((uv_handle_t *)&csock->timer, csock);
 
        r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
index 38c8c692e15a34e299038f7e2140b1a8ce72fc9e..a00a513114e6e838820212a6e35eb53948090e3a 100644 (file)
@@ -102,11 +102,11 @@ tcpdns_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
        atomic_store(&sock->connecting, true);
 
        r = uv_tcp_init(&worker->loop, &sock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
        uv_handle_set_data(&sock->uv_handle.handle, sock);
 
        r = uv_timer_init(&worker->loop, &sock->timer);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
 
        if (isc__nm_closing(sock)) {
                result = ISC_R_CANCELED;
@@ -491,13 +491,13 @@ isc__nm_async_tcpdnslisten(isc__networker_t *worker, isc__netievent_t *ev0) {
        /* TODO: set min mss */
 
        r = uv_tcp_init(&worker->loop, &sock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
        uv_handle_set_data(&sock->uv_handle.handle, sock);
        /* 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);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
        uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
 
        LOCK(&sock->parent->lock);
@@ -947,11 +947,11 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
        worker = &csock->mgr->workers[csock->tid];
 
        r = uv_tcp_init(&worker->loop, &csock->uv_handle.tcp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_tcp_init, r);
        uv_handle_set_data(&csock->uv_handle.handle, csock);
 
        r = uv_timer_init(&worker->loop, &csock->timer);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
        uv_handle_set_data((uv_handle_t *)&csock->timer, csock);
 
        r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
@@ -1142,7 +1142,7 @@ isc__nm_async_tcpdnssend(isc__networker_t *worker, isc__netievent_t *ev0) {
                bufs[0].base = uvreq->uvbuf.base + (r - 2);
                bufs[0].len = uvreq->uvbuf.len - (r - 2);
        } else if (r == UV_ENOSYS || r == UV_EAGAIN) {
-               /* uv_try_write not support, send asynchronously */
+               /* uv_try_write not supported, send asynchronously */
        } else {
                /* error sending data */
                result = isc__nm_uverr2result(r);
@@ -1157,7 +1157,6 @@ isc__nm_async_tcpdnssend(isc__networker_t *worker, isc__netievent_t *ev0) {
        }
 
        return;
-
 fail:
        if (result != ISC_R_SUCCESS) {
                isc__nm_incstats(sock->mgr, sock->statsindex[STATID_SENDFAIL]);
index 0837191ab0ff2ce99681ba262dc502f2f88b444d..e732c95dde918f2afc21b5aba67a57027f248645 100644 (file)
@@ -223,13 +223,13 @@ isc__nm_async_udplisten(isc__networker_t *worker, isc__netievent_t *ev0) {
        uv_init_flags |= UV_UDP_RECVMMSG;
 #endif
        r = uv_udp_init_ex(&worker->loop, &sock->uv_handle.udp, uv_init_flags);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_udp_init_ex, r);
        uv_handle_set_data(&sock->uv_handle.handle, sock);
        /* 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);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
        uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
 
        LOCK(&sock->parent->lock);
@@ -647,11 +647,11 @@ udp_connect_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
        atomic_store(&sock->connecting, true);
 
        r = uv_udp_init(&worker->loop, &sock->uv_handle.udp);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_udp_init, r);
        uv_handle_set_data(&sock->uv_handle.handle, sock);
 
        r = uv_timer_init(&worker->loop, &sock->timer);
-       RUNTIME_CHECK(r == 0);
+       UV_RUNTIME_CHECK(uv_timer_init, r);
        uv_handle_set_data((uv_handle_t *)&sock->timer, sock);
 
        r = uv_udp_open(&sock->uv_handle.udp, sock->fd);