]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove extrahandle size from netmgr
authorOndřej Surý <ondrej@isc.org>
Wed, 23 Mar 2022 12:57:15 +0000 (13:57 +0100)
committerOndřej Surý <ondrej@isc.org>
Fri, 25 Mar 2022 09:38:35 +0000 (10:38 +0100)
Previously, it was possible to assign a bit of memory space in the
nmhandle to store the client data.  This was complicated and prevents
further refactoring of isc_nmhandle_t caching (future work).

Instead of caching the data in the nmhandle, allocate the hot-path
ns_client_t objects from per-thread clientmgr memory context and just
assign it to the isc_nmhandle_t via isc_nmhandle_set().

23 files changed:
bin/dig/dighost.c
bin/named/controlconf.c
bin/rndc/rndc.c
bin/tests/test_client.c
bin/tests/test_server.c
lib/dns/dispatch.c
lib/dns/tests/dispatch_test.c
lib/dns/xfrin.c
lib/isc/httpd.c
lib/isc/include/isc/netmgr.h
lib/isc/netmgr/http.c
lib/isc/netmgr/netmgr-int.h
lib/isc/netmgr/netmgr.c
lib/isc/netmgr/tcp.c
lib/isc/netmgr/tcpdns.c
lib/isc/netmgr/tlsdns.c
lib/isc/netmgr/tlsstream.c
lib/isc/netmgr/udp.c
lib/isc/tests/doh_test.c
lib/isc/tests/netmgr_test.c
lib/ns/client.c
lib/ns/interfacemgr.c
lib/ns/tests/nstest.c

index 7b68d252ee55d69a77b927fa84abc3229bb49935..ef47570f2d16c67d738226aa443c9d3bc5bcee8c 100644 (file)
@@ -2798,7 +2798,7 @@ start_tcp(dig_query_t *query) {
                        isc_tlsctx_enable_dot_client_alpn(query->tlsctx);
                        isc_nm_tlsdnsconnect(netmgr, &localaddr,
                                             &query->sockaddr, tcp_connected,
-                                            connectquery, local_timeout, 0,
+                                            connectquery, local_timeout,
                                             query->tlsctx);
 #if HAVE_LIBNGHTTP2
                } else if (query->lookup->https_mode) {
@@ -2819,12 +2819,12 @@ start_tcp(dig_query_t *query) {
                        isc_nm_httpconnect(netmgr, &localaddr, &query->sockaddr,
                                           uri, !query->lookup->https_get,
                                           tcp_connected, connectquery,
-                                          query->tlsctx, local_timeout, 0);
+                                          query->tlsctx, local_timeout);
 #endif
                } else {
                        isc_nm_tcpdnsconnect(netmgr, &localaddr,
                                             &query->sockaddr, tcp_connected,
-                                            connectquery, local_timeout, 0);
+                                            connectquery, local_timeout);
                }
 
                /* XXX: set DSCP */
@@ -3001,7 +3001,7 @@ start_udp(dig_query_t *query) {
        query_attach(query, &connectquery);
        isc_nm_udpconnect(netmgr, &localaddr, &query->sockaddr, udp_ready,
                          connectquery,
-                         (timeout ? timeout : UDP_TIMEOUT) * 1000, 0);
+                         (timeout ? timeout : UDP_TIMEOUT) * 1000);
 }
 
 /*%
index 9deaf39ee4540b831ebf1571471a1439ae99d2a9..848fb644c0427a382f8e32008a4342908f171657 100644 (file)
@@ -588,6 +588,9 @@ conn_put(void *arg) {
        isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
                      NAMED_LOGMODULE_CONTROL, ISC_LOG_DEBUG(3),
                      "freeing control connection");
+
+       isc_mem_put(listener->mctx, conn, sizeof(*conn));
+
        maybe_free_listener(listener);
 }
 
@@ -597,7 +600,7 @@ newconnection(controllistener_t *listener, isc_nmhandle_t *handle) {
 
        conn = isc_nmhandle_getdata(handle);
        if (conn == NULL) {
-               conn = isc_nmhandle_getextra(handle);
+               conn = isc_mem_get(listener->mctx, sizeof(*conn));
                isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
                              NAMED_LOGMODULE_CONTROL, ISC_LOG_DEBUG(3),
                              "allocate new control connection");
@@ -1160,9 +1163,9 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
        }
 #endif
 
-       CHECK(isc_nm_listentcp(
-               named_g_netmgr, &listener->address, control_newconn, listener,
-               sizeof(controlconnection_t), 5, NULL, &listener->sock));
+       CHECK(isc_nm_listentcp(named_g_netmgr, &listener->address,
+                              control_newconn, listener, 5, NULL,
+                              &listener->sock));
 #if 0
        /* XXX: no unix socket support yet */
        if (type == isc_socktype_unix) {
index 619dca140b82a080fc428f3d47d2447b6733674d..b9fbd87f0c315229697516a480d65b0c6b5e7181 100644 (file)
@@ -597,7 +597,7 @@ rndc_startconnect(isc_sockaddr_t *addr) {
 
        atomic_fetch_add_relaxed(&connects, 1);
        isc_nm_tcpconnect(netmgr, local, addr, rndc_connected, &rndc_ccmsg,
-                         60000, 0);
+                         60000);
 }
 
 static void
index bd5e543b6d56ea1def4147e177d54b25c2a84842..10517f24c7b6b5e17fe21f5ebb6e255466a5e0bc 100644 (file)
@@ -397,17 +397,17 @@ run(void) {
        switch (protocol) {
        case UDP:
                isc_nm_udpconnect(netmgr, &sockaddr_local, &sockaddr_remote,
-                                 connect_cb, NULL, timeout, 0);
+                                 connect_cb, NULL, timeout);
                break;
        case TCP:
                isc_nm_tcpdnsconnect(netmgr, &sockaddr_local, &sockaddr_remote,
-                                    connect_cb, NULL, timeout, 0);
+                                    connect_cb, NULL, timeout);
                break;
        case DOT: {
                isc_tlsctx_createclient(&tls_ctx);
 
                isc_nm_tlsdnsconnect(netmgr, &sockaddr_local, &sockaddr_remote,
-                                    connect_cb, NULL, timeout, 0, tls_ctx);
+                                    connect_cb, NULL, timeout, tls_ctx);
                break;
        }
 #if HAVE_LIBNGHTTP2
@@ -428,7 +428,7 @@ run(void) {
                }
                isc_nm_httpconnect(netmgr, &sockaddr_local, &sockaddr_remote,
                                   req_url, is_post, connect_cb, NULL, tls_ctx,
-                                  timeout, 0);
+                                  timeout);
        } break;
 #endif
        default:
index a5b88339637dd17021155162cb9a12fd27251105..066dcf9e7ffa2d01da681e42c03c47e026831844 100644 (file)
@@ -266,20 +266,19 @@ run(void) {
 
        switch (protocol) {
        case UDP:
-               result = isc_nm_listenudp(netmgr, &sockaddr, read_cb, NULL, 0,
+               result = isc_nm_listenudp(netmgr, &sockaddr, read_cb, NULL,
                                          &sock);
                break;
        case TCP:
                result = isc_nm_listentcpdns(netmgr, &sockaddr, read_cb, NULL,
-                                            accept_cb, NULL, 0, 0, NULL,
-                                            &sock);
+                                            accept_cb, NULL, 0, NULL, &sock);
                break;
        case DOT: {
                isc_tlsctx_createserver(NULL, NULL, &tls_ctx);
 
                result = isc_nm_listentlsdns(netmgr, &sockaddr, read_cb, NULL,
-                                            accept_cb, NULL, 0, 0, NULL,
-                                            tls_ctx, &sock);
+                                            accept_cb, NULL, 0, NULL, tls_ctx,
+                                            &sock);
                break;
        }
 #if HAVE_LIBNGHTTP2
@@ -292,7 +291,7 @@ run(void) {
                }
                eps = isc_nm_http_endpoints_new(mctx);
                result = isc_nm_http_endpoints_add(
-                       eps, ISC_NM_HTTP_DEFAULT_PATH, read_cb, NULL, 0);
+                       eps, ISC_NM_HTTP_DEFAULT_PATH, read_cb, NULL);
 
                if (result == ISC_R_SUCCESS) {
                        result = isc_nm_listenhttp(netmgr, &sockaddr, 0, NULL,
index 7544a4dba28e98341c11181e52bd806a19be1640..74df922623e11aa1e932b58ae61013797aa7be9a 100644 (file)
@@ -1817,7 +1817,7 @@ dns_dispatch_connect(dns_dispentry_t *resp) {
                        dns_dispatch_attach(disp, &(dns_dispatch_t *){ NULL });
                        isc_nm_tcpdnsconnect(disp->mgr->nm, &disp->local,
                                             &disp->peer, tcp_connected, disp,
-                                            resp->timeout, 0);
+                                            resp->timeout);
                        break;
 
                case DNS_DISPATCHSTATE_CONNECTING:
@@ -1843,7 +1843,7 @@ dns_dispatch_connect(dns_dispentry_t *resp) {
 
        case isc_socktype_udp:
                isc_nm_udpconnect(disp->mgr->nm, &resp->local, &resp->peer,
-                                 udp_connected, resp, resp->timeout, 0);
+                                 udp_connected, resp, resp->timeout);
                break;
 
        default:
index 89a4c2e0839faac49cdc5cedb982d2ea868f67a0..ea4afca3389e4b7116e2b196cee03e863755d746 100644 (file)
@@ -511,7 +511,7 @@ dispatch_timeout_tcp_response(void **state __attribute__((unused))) {
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listentcpdns(netmgr, &tcp_server_addr, noop_nameserver,
-                                    NULL, accept_cb, NULL, 0, 0, NULL, &sock);
+                                    NULL, accept_cb, NULL, 0, NULL, &sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        region.base = rbuf;
@@ -567,7 +567,7 @@ dispatch_tcp_response(void **state __attribute__((unused))) {
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listentcpdns(netmgr, &tcp_server_addr, nameserver, NULL,
-                                    accept_cb, NULL, 0, 0, NULL, &sock);
+                                    accept_cb, NULL, 0, NULL, &sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        region.base = rbuf;
@@ -626,7 +626,7 @@ dispatch_timeout_udp_response(void **state __attribute__((unused))) {
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenudp(netmgr, &udp_server_addr, noop_nameserver,
-                                 NULL, 0, &sock);
+                                 NULL, &sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        region.base = rbuf;
@@ -682,7 +682,7 @@ dispatch_getnext(void **state) {
        /*
         * Create a local udp nameserver on the loopback.
         */
-       result = isc_nm_listenudp(netmgr, &udp_server_addr, nameserver, NULL, 0,
+       result = isc_nm_listenudp(netmgr, &udp_server_addr, nameserver, NULL,
                                  &sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
index 5df10d3dedec38dfbcc54216a7813d7d0424c0fe..c64b5525c55615ca6ef0ffcb01a53a1dccafeebd 100644 (file)
@@ -949,7 +949,7 @@ xfrin_start(dns_xfrin_ctx_t *xfr) {
        case DNS_TRANSPORT_TCP:
                isc_nm_tcpdnsconnect(xfr->netmgr, &xfr->sourceaddr,
                                     &xfr->primaryaddr, xfrin_connect_done,
-                                    connect_xfr, 30000, 0);
+                                    connect_xfr, 30000);
                break;
        case DNS_TRANSPORT_TLS: {
                uint32_t tls_versions;
@@ -1025,7 +1025,7 @@ xfrin_start(dns_xfrin_ctx_t *xfr) {
                }
                isc_nm_tlsdnsconnect(xfr->netmgr, &xfr->sourceaddr,
                                     &xfr->primaryaddr, xfrin_connect_done,
-                                    connect_xfr, 30000, 0, tlsctx);
+                                    connect_xfr, 30000, tlsctx);
        } break;
        default:
                UNREACHABLE();
index 7a1512b6f79e2b4e1e7488ea3594037be3a9768a..e0a35d6e81c7443c52785940a785a5f56831691d 100644 (file)
@@ -231,8 +231,8 @@ isc_httpdmgr_create(isc_nm_t *nm, isc_mem_t *mctx, isc_sockaddr_t *addr,
 
        isc_refcount_init(&httpdmgr->references, 1);
 
-       CHECK(isc_nm_listentcp(nm, addr, httpd_newconn, httpdmgr,
-                              sizeof(isc_httpd_t), 5, NULL, &httpdmgr->sock));
+       CHECK(isc_nm_listentcp(nm, addr, httpd_newconn, httpdmgr, 5, NULL,
+                              &httpdmgr->sock));
 
        httpdmgr->magic = HTTPDMGR_MAGIC;
        *httpdmgrp = httpdmgr;
@@ -649,6 +649,9 @@ httpd_put(void *arg) {
 
        free_buffer(mgr->mctx, &httpd->headerbuffer);
        free_buffer(mgr->mctx, &httpd->compbuffer);
+
+       isc_mem_put(mgr->mctx, httpd, sizeof(*httpd));
+
        httpdmgr_detach(&mgr);
 
 #if ENABLE_AFL
@@ -667,7 +670,7 @@ new_httpd(isc_httpdmgr_t *httpdmgr, isc_nmhandle_t *handle) {
 
        httpd = isc_nmhandle_getdata(handle);
        if (httpd == NULL) {
-               httpd = isc_nmhandle_getextra(handle);
+               httpd = isc_mem_get(httpdmgr->mctx, sizeof(*httpd));
                *httpd = (isc_httpd_t){ .handle = NULL };
                httpdmgr_attach(httpdmgr, &httpd->mgr);
        }
index 86ac0e9ac7ef151f6d5c8fb2bd680eab9d5cf492..9489c15578deeb29f33bf8ccb5b47981ab7275e1 100644 (file)
@@ -133,9 +133,6 @@ isc__nmhandle_detach(isc_nmhandle_t **handlep FLARG);
 void *
 isc_nmhandle_getdata(isc_nmhandle_t *handle);
 
-void *
-isc_nmhandle_getextra(isc_nmhandle_t *handle);
-
 bool
 isc_nmhandle_is_stream(isc_nmhandle_t *handle);
 
@@ -200,7 +197,7 @@ isc_nmhandle_netmgr(isc_nmhandle_t *handle);
 
 isc_result_t
 isc_nm_listenudp(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nm_recv_cb_t cb,
-                void *cbarg, size_t extrasize, isc_nmsocket_t **sockp);
+                void *cbarg, isc_nmsocket_t **sockp);
 /*%<
  * Start listening for UDP packets on interface 'iface' using net manager
  * 'mgr'.
@@ -209,25 +206,16 @@ isc_nm_listenudp(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nm_recv_cb_t cb,
  *
  * When a packet is received on the socket, 'cb' will be called with 'cbarg'
  * as its argument.
- *
- * When handles are allocated for the socket, 'extrasize' additional bytes
- * can be allocated along with the handle for an associated object, which
- * can then be freed automatically when the handle is destroyed.
  */
 
 void
 isc_nm_udpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                 size_t extrahandlesize);
+                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout);
 /*%<
  * Open a UDP socket, bind to 'local' and connect to 'peer', and
  * immediately call 'cb' with a handle so that the caller can begin
  * sending packets over UDP.
  *
- * When handles are allocated for the socket, 'extrasize' additional bytes
- * can be allocated along with the handle for an associated object, which
- * can then be freed automatically when the handle is destroyed.
- *
  * 'timeout' specifies the timeout interval in milliseconds.
  *
  * The connected socket can only be accessed via the handle passed to
@@ -235,8 +223,7 @@ isc_nm_udpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
  */
 
 isc_result_t
-isc_nm_routeconnect(isc_nm_t *mgr, isc_nm_cb_t cb, void *cbarg,
-                   size_t extrahandlesize);
+isc_nm_routeconnect(isc_nm_t *mgr, isc_nm_cb_t cb, void *cbarg);
 /*%<
  * Open a route/netlink socket and call 'cb', so the caller can be
  * begin listening for interface changes.  This behaves similarly to
@@ -317,9 +304,8 @@ isc_nm_send(isc_nmhandle_t *handle, isc_region_t *region, isc_nm_cb_t cb,
 
 isc_result_t
 isc_nm_listentcp(isc_nm_t *mgr, isc_sockaddr_t *iface,
-                isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                isc_nmsocket_t **sockp);
+                isc_nm_accept_cb_t accept_cb, void *accept_cbarg, int backlog,
+                isc_quota_t *quota, isc_nmsocket_t **sockp);
 /*%<
  * Start listening for raw messages over the TCP interface 'iface', using
  * net manager 'mgr'.
@@ -330,9 +316,6 @@ isc_nm_listentcp(isc_nm_t *mgr, isc_sockaddr_t *iface,
  * When connection is accepted on the socket, 'accept_cb' will be called with
  * 'accept_cbarg' as its argument. The callback is expected to start a read.
  *
- * When handles are allocated for the socket, 'extrasize' additional bytes
- * will be allocated along with the handle for an associated object.
- *
  * If 'quota' is not NULL, then the socket is attached to the specified
  * quota. This allows us to enforce TCP client quota limits.
  *
@@ -340,15 +323,13 @@ isc_nm_listentcp(isc_nm_t *mgr, isc_sockaddr_t *iface,
 
 void
 isc_nm_tcpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                 size_t extrahandlesize);
+                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout);
 /*%<
  * Create a socket using netmgr 'mgr', bind it to the address 'local',
  * and connect it to the address 'peer'.
  *
  * When the connection is complete or has timed out, call 'cb' with
- * argument 'cbarg'. Allocate 'extrahandlesize' additional bytes along
- * with the handle to use for an associated object.
+ * argument 'cbarg'.
  *
  * 'timeout' specifies the timeout interval in milliseconds.
  *
@@ -360,8 +341,7 @@ isc_result_t
 isc_nm_listentcpdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
                    isc_nm_recv_cb_t recv_cb, void *recv_cbarg,
                    isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                   size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                   isc_nmsocket_t **sockp);
+                   int backlog, isc_quota_t *quota, isc_nmsocket_t **sockp);
 /*%<
  * Start listening for DNS messages over the TCP interface 'iface', using
  * net manager 'mgr'.
@@ -378,10 +358,6 @@ isc_nm_listentcpdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
  * When a new TCPDNS connection is accepted, 'accept_cb' will be called
  * with 'accept_cbarg' as its argument.
  *
- * When handles are allocated for the socket, 'extrasize' additional bytes
- * will be allocated along with the handle for an associated object
- * (typically ns_client).
- *
  * 'quota' is passed to isc_nm_listentcp() when opening the raw TCP socket.
  */
 
@@ -389,8 +365,8 @@ isc_result_t
 isc_nm_listentlsdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
                    isc_nm_recv_cb_t recv_cb, void *recv_cbarg,
                    isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                   size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                   isc_tlsctx_t *sslctx, isc_nmsocket_t **sockp);
+                   int backlog, isc_quota_t *quota, isc_tlsctx_t *sslctx,
+                   isc_nmsocket_t **sockp);
 /*%<
  * Same as isc_nm_listentcpdns but for an SSL (DoT) socket.
  */
@@ -464,19 +440,17 @@ isc_nm_checkaddr(const isc_sockaddr_t *addr, isc_socktype_t type);
 
 void
 isc_nm_tcpdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                    isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                    size_t extrahandlesize);
+                    isc_nm_cb_t cb, void *cbarg, unsigned int timeout);
 void
 isc_nm_tlsdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                     isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                    size_t extrahandlesize, isc_tlsctx_t *sslctx);
+                    isc_tlsctx_t *sslctx);
 /*%<
  * Establish a DNS client connection via a TCP or TLS connection, bound to
  * the address 'local' and connected to the address 'peer'.
  *
  * When the connection is complete or has timed out, call 'cb' with
- * argument 'cbarg'. Allocate 'extrahandlesize' additional bytes along
- * with the handle to use for an associated object.
+ * argument 'cbarg'.
  *
  * 'timeout' specifies the timeout interval in milliseconds.
  *
@@ -502,20 +476,19 @@ isc_nm_is_http_handle(isc_nmhandle_t *handle);
 
 isc_result_t
 isc_nm_listentls(isc_nm_t *mgr, isc_sockaddr_t *iface,
-                isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                isc_tlsctx_t *sslctx, isc_nmsocket_t **sockp);
+                isc_nm_accept_cb_t accept_cb, void *accept_cbarg, int backlog,
+                isc_quota_t *quota, isc_tlsctx_t *sslctx,
+                isc_nmsocket_t **sockp);
 
 void
 isc_nm_tlsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                  isc_nm_cb_t cb, void *cbarg, isc_tlsctx_t *ctx,
-                 unsigned int timeout, size_t extrahandlesize);
+                 unsigned int timeout);
 
 void
 isc_nm_httpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                   const char *uri, bool POST, isc_nm_cb_t cb, void *cbarg,
-                  isc_tlsctx_t *ctx, unsigned int timeout,
-                  size_t extrahandlesize);
+                  isc_tlsctx_t *ctx, unsigned int timeout);
 
 isc_result_t
 isc_nm_listenhttp(isc_nm_t *mgr, isc_sockaddr_t *iface, int backlog,
@@ -535,7 +508,7 @@ isc_nm_http_endpoints_new(isc_mem_t *mctx);
 isc_result_t
 isc_nm_http_endpoints_add(isc_nm_http_endpoints_t *restrict eps,
                          const char *uri, const isc_nm_recv_cb_t cb,
-                         void *cbarg, const size_t extrahandlesize);
+                         void *cbarg);
 /*%< Adds a new endpoint to the given HTTP endpoints set object.
  *
  * NOTE: adding an endpoint is allowed only if the endpoint object has
index d09ad5b8c7a76864590ee7f7e87bd76bc91855f3..28294a02aece2ca663a0d5106e9b6f7c93f2aeeb 100644 (file)
@@ -1130,10 +1130,12 @@ http_send_outgoing(isc_nm_http_session_t *session, isc_nmhandle_t *httphandle,
                 * FLUSH_HTTP_WRITE_BUFFER_AFTER bytes in the write buffer, we
                 * will flush the buffer. */
                if (cb != NULL) {
-                       isc__nm_uvreq_t *newcb = isc__nm_uvreq_get(
-                               httphandle->sock->mgr, httphandle->sock);
+                       isc__nm_uvreq_t *newcb = NULL;
 
                        INSIST(VALID_NMHANDLE(httphandle));
+
+                       newcb = isc__nm_uvreq_get(httphandle->sock->mgr,
+                                                 httphandle->sock);
                        newcb->cb.send = cb;
                        newcb->cbarg = cbarg;
                        isc_nmhandle_attach(httphandle, &newcb->handle);
@@ -1422,8 +1424,7 @@ error:
 void
 isc_nm_httpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                   const char *uri, bool post, isc_nm_cb_t cb, void *cbarg,
-                  isc_tlsctx_t *tlsctx, unsigned int timeout,
-                  size_t extrahandlesize) {
+                  isc_tlsctx_t *tlsctx, unsigned int timeout) {
        isc_sockaddr_t local_interface;
        isc_nmsocket_t *sock = NULL;
 
@@ -1441,7 +1442,6 @@ isc_nm_httpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        sock = isc_mem_get(mgr->mctx, sizeof(*sock));
        isc__nmsocket_init(sock, mgr, isc_nm_httpsocket, local);
 
-       sock->extrahandlesize = extrahandlesize;
        sock->connect_timeout = timeout;
        sock->result = ISC_R_UNSET;
        sock->connect_cb = cb;
@@ -1485,10 +1485,10 @@ isc_nm_httpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
 
        if (tlsctx != NULL) {
                isc_nm_tlsconnect(mgr, local, peer, transport_connect_cb, sock,
-                                 tlsctx, timeout, 0);
+                                 tlsctx, timeout);
        } else {
                isc_nm_tcpconnect(mgr, local, peer, transport_connect_cb, sock,
-                                 timeout, 0);
+                                 timeout);
        }
 }
 
@@ -1687,7 +1687,6 @@ server_handle_path_header(isc_nmsocket_t *socket, const uint8_t *value,
        if (handler != NULL) {
                socket->h2.cb = handler->cb;
                socket->h2.cbarg = handler->cbarg;
-               socket->extrahandlesize = handler->extrahandlesize;
        } else {
                isc_mem_free(socket->mgr->mctx, socket->h2.request_path);
                socket->h2.request_path = NULL;
@@ -2487,11 +2486,9 @@ isc_nm_listenhttp(isc_nm_t *mgr, isc_sockaddr_t *iface, int backlog,
 
        if (ctx != NULL) {
                result = isc_nm_listentls(mgr, iface, httplisten_acceptcb, sock,
-                                         sizeof(isc_nm_http_session_t),
                                          backlog, quota, ctx, &sock->outer);
        } else {
                result = isc_nm_listentcp(mgr, iface, httplisten_acceptcb, sock,
-                                         sizeof(isc_nm_http_session_t),
                                          backlog, quota, &sock->outer);
        }
 
@@ -2627,7 +2624,7 @@ http_callback(isc_nmhandle_t *handle, isc_result_t result, isc_region_t *data,
 isc_result_t
 isc_nm_http_endpoints_add(isc_nm_http_endpoints_t *restrict eps,
                          const char *uri, const isc_nm_recv_cb_t cb,
-                         void *cbarg, const size_t extrahandlesize) {
+                         void *cbarg) {
        isc_mem_t *mctx;
        isc_nm_httphandler_t *restrict handler = NULL;
        isc_nm_httpcbarg_t *restrict httpcbarg = NULL;
@@ -2645,12 +2642,10 @@ isc_nm_http_endpoints_add(isc_nm_http_endpoints_t *restrict eps,
 
        if (http_endpoints_find(uri, eps) == NULL) {
                handler = isc_mem_get(mctx, sizeof(*handler));
-               *handler = (isc_nm_httphandler_t){
-                       .cb = http_callback,
-                       .cbarg = httpcbarg,
-                       .extrahandlesize = extrahandlesize,
-                       .path = isc_mem_strdup(mctx, uri)
-               };
+               *handler = (isc_nm_httphandler_t){ .cb = http_callback,
+                                                  .cbarg = httpcbarg,
+                                                  .path = isc_mem_strdup(
+                                                          mctx, uri) };
                ISC_LINK_INIT(handler, link);
 
                newhandler = true;
index 75949c869aba1bb66998cd065366268a15c1c8a3..ce1d35f7f1e85dc4e3b39411617f00c7f7d7b02b 100644 (file)
@@ -278,7 +278,6 @@ struct isc_nmhandle {
        LINK(isc_nmhandle_t) active_link;
 #endif
        void *opaque;
-       char extra[];
 };
 
 typedef enum isc__netievent_type {
@@ -816,7 +815,6 @@ typedef struct isc_nm_httphandler {
        char *path;
        isc_nm_recv_cb_t cb;
        void *cbarg;
-       size_t extrahandlesize;
        LINK(struct isc_nm_httphandler) link;
 } isc_nm_httphandler_t;
 
@@ -987,9 +985,6 @@ struct isc_nmsocket {
        isc_nmhandle_t *statichandle;
        isc_nmhandle_t *outerhandle;
 
-       /*% Extra data allocated at the end of each isc_nmhandle_t */
-       size_t extrahandlesize;
-
        /*% TCP backlog */
        int backlog;
 
index 122e5e84a202e006c09403ca21b1adf439b07f64..5f4e7631ab9fb95a9c4db90e3b4b8749ce10f030 100644 (file)
@@ -1547,9 +1547,8 @@ isc__nm_free_uvbuf(isc_nmsocket_t *sock, const uv_buf_t *buf) {
 
 static isc_nmhandle_t *
 alloc_handle(isc_nmsocket_t *sock) {
-       isc_nmhandle_t *handle =
-               isc_mem_get(sock->mgr->mctx,
-                           sizeof(isc_nmhandle_t) + sock->extrahandlesize);
+       isc_nmhandle_t *handle = isc_mem_get(sock->mgr->mctx,
+                                            sizeof(isc_nmhandle_t));
 
        *handle = (isc_nmhandle_t){ .magic = NMHANDLE_MAGIC };
 #ifdef NETMGR_TRACE
@@ -1666,8 +1665,6 @@ isc_nmhandle_is_stream(isc_nmhandle_t *handle) {
 
 static void
 nmhandle_free(isc_nmsocket_t *sock, isc_nmhandle_t *handle) {
-       size_t extra = sock->extrahandlesize;
-
        isc_refcount_destroy(&handle->references);
 
        if (handle->dofree != NULL) {
@@ -1676,7 +1673,7 @@ nmhandle_free(isc_nmsocket_t *sock, isc_nmhandle_t *handle) {
 
        *handle = (isc_nmhandle_t){ .magic = 0 };
 
-       isc_mem_put(sock->mgr->mctx, handle, sizeof(isc_nmhandle_t) + extra);
+       isc_mem_put(sock->mgr->mctx, handle, sizeof(isc_nmhandle_t));
 }
 
 static void
@@ -2382,13 +2379,6 @@ isc_nmhandle_timer_running(isc_nmhandle_t *handle) {
        return (isc__nmsocket_timer_running(handle->sock));
 }
 
-void *
-isc_nmhandle_getextra(isc_nmhandle_t *handle) {
-       REQUIRE(VALID_NMHANDLE(handle));
-
-       return (handle->extra);
-}
-
 isc_sockaddr_t
 isc_nmhandle_peeraddr(isc_nmhandle_t *handle) {
        REQUIRE(VALID_NMHANDLE(handle));
index 9fc80c4d20fc8f0f57d4c51c82238158e08b171c..1f4d3bf0885c0cac1b0df3346250d8b88911c569 100644 (file)
@@ -289,8 +289,7 @@ error:
 
 void
 isc_nm_tcpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                 size_t extrahandlesize) {
+                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        isc__netievent_tcpconnect_t *ievent = NULL;
@@ -306,7 +305,6 @@ isc_nm_tcpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        sock = isc_mem_get(mgr->mctx, sizeof(*sock));
        isc__nmsocket_init(sock, mgr, isc_nm_tcpsocket, local);
 
-       sock->extrahandlesize = extrahandlesize;
        sock->connect_timeout = timeout;
        sock->result = ISC_R_UNSET;
        sock->fd = (uv_os_sock_t)-1;
@@ -395,7 +393,6 @@ start_tcp_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock,
        csock->parent = sock;
        csock->accept_cb = sock->accept_cb;
        csock->accept_cbarg = sock->accept_cbarg;
-       csock->extrahandlesize = sock->extrahandlesize;
        csock->backlog = sock->backlog;
        csock->tid = tid;
        /*
@@ -428,9 +425,8 @@ enqueue_stoplistening(isc_nmsocket_t *sock) {
 
 isc_result_t
 isc_nm_listentcp(isc_nm_t *mgr, isc_sockaddr_t *iface,
-                isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                isc_nmsocket_t **sockp) {
+                isc_nm_accept_cb_t accept_cb, void *accept_cbarg, int backlog,
+                isc_quota_t *quota, isc_nmsocket_t **sockp) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        size_t children_size = 0;
@@ -451,7 +447,6 @@ isc_nm_listentcp(isc_nm_t *mgr, isc_sockaddr_t *iface,
 
        sock->accept_cb = accept_cb;
        sock->accept_cbarg = accept_cbarg;
-       sock->extrahandlesize = extrahandlesize;
        sock->backlog = backlog;
        sock->pquota = quota;
 
@@ -950,7 +945,6 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
        csock = isc_mem_get(ssock->mgr->mctx, sizeof(isc_nmsocket_t));
        isc__nmsocket_init(csock, ssock->mgr, isc_nm_tcpsocket, &ssock->iface);
        csock->tid = ssock->tid;
-       csock->extrahandlesize = ssock->extrahandlesize;
        isc__nmsocket_attach(ssock, &csock->server);
        csock->recv_cb = ssock->recv_cb;
        csock->recv_cbarg = ssock->recv_cbarg;
index 53c2f30ff2b945f127b3a49820a244cf7f8faab7..cab6fc34f69cbb9e3b61b6df6db60187bece4f00 100644 (file)
@@ -252,8 +252,7 @@ error:
 
 void
 isc_nm_tcpdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                    isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                    size_t extrahandlesize) {
+                    isc_nm_cb_t cb, void *cbarg, unsigned int timeout) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        isc__netievent_tcpdnsconnect_t *ievent = NULL;
@@ -269,7 +268,6 @@ isc_nm_tcpdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        sock = isc_mem_get(mgr->mctx, sizeof(*sock));
        isc__nmsocket_init(sock, mgr, isc_nm_tcpdnssocket, local);
 
-       sock->extrahandlesize = extrahandlesize;
        sock->connect_timeout = timeout;
        sock->result = ISC_R_UNSET;
        atomic_init(&sock->client, true);
@@ -368,7 +366,6 @@ start_tcpdns_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock,
        csock->accept_cbarg = sock->accept_cbarg;
        csock->recv_cb = sock->recv_cb;
        csock->recv_cbarg = sock->recv_cbarg;
-       csock->extrahandlesize = sock->extrahandlesize;
        csock->backlog = sock->backlog;
        csock->tid = tid;
        /*
@@ -394,8 +391,7 @@ isc_result_t
 isc_nm_listentcpdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
                    isc_nm_recv_cb_t recv_cb, void *recv_cbarg,
                    isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                   size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                   isc_nmsocket_t **sockp) {
+                   int backlog, isc_quota_t *quota, isc_nmsocket_t **sockp) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        size_t children_size = 0;
@@ -417,7 +413,6 @@ isc_nm_listentcpdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
        sock->accept_cbarg = accept_cbarg;
        sock->recv_cb = recv_cb;
        sock->recv_cbarg = recv_cbarg;
-       sock->extrahandlesize = extrahandlesize;
        sock->backlog = backlog;
        sock->pquota = quota;
 
@@ -952,7 +947,6 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
        isc__nmsocket_init(csock, ssock->mgr, isc_nm_tcpdnssocket,
                           &ssock->iface);
        csock->tid = ssock->tid;
-       csock->extrahandlesize = ssock->extrahandlesize;
        isc__nmsocket_attach(ssock, &csock->server);
        csock->recv_cb = ssock->recv_cb;
        csock->recv_cbarg = ssock->recv_cbarg;
index 4864fcc477b5aa9d407b864293089717190d7e46..b13df1f45d9bc92687128211d88e6f82c247f17f 100644 (file)
@@ -306,7 +306,7 @@ error:
 void
 isc_nm_tlsdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                     isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                    size_t extrahandlesize, isc_tlsctx_t *sslctx) {
+                    isc_tlsctx_t *sslctx) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        isc__netievent_tlsdnsconnect_t *ievent = NULL;
@@ -323,7 +323,6 @@ isc_nm_tlsdnsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        sock = isc_mem_get(mgr->mctx, sizeof(*sock));
        isc__nmsocket_init(sock, mgr, isc_nm_tlsdnssocket, local);
 
-       sock->extrahandlesize = extrahandlesize;
        sock->connect_timeout = timeout;
        sock->result = ISC_R_UNSET;
        sock->tls.ctx = sslctx;
@@ -426,7 +425,6 @@ start_tlsdns_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock,
        csock->accept_cbarg = sock->accept_cbarg;
        csock->recv_cb = sock->recv_cb;
        csock->recv_cbarg = sock->recv_cbarg;
-       csock->extrahandlesize = sock->extrahandlesize;
        csock->backlog = sock->backlog;
        csock->tid = tid;
        csock->tls.ctx = sock->tls.ctx;
@@ -463,8 +461,8 @@ isc_result_t
 isc_nm_listentlsdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
                    isc_nm_recv_cb_t recv_cb, void *recv_cbarg,
                    isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                   size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                   isc_tlsctx_t *sslctx, isc_nmsocket_t **sockp) {
+                   int backlog, isc_quota_t *quota, isc_tlsctx_t *sslctx,
+                   isc_nmsocket_t **sockp) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        size_t children_size = 0;
@@ -486,7 +484,6 @@ isc_nm_listentlsdns(isc_nm_t *mgr, isc_sockaddr_t *iface,
        sock->accept_cbarg = accept_cbarg;
        sock->recv_cb = recv_cb;
        sock->recv_cbarg = recv_cbarg;
-       sock->extrahandlesize = extrahandlesize;
        sock->backlog = backlog;
        sock->pquota = quota;
 
@@ -1469,7 +1466,6 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
        isc__nmsocket_init(csock, ssock->mgr, isc_nm_tlsdnssocket,
                           &ssock->iface);
        csock->tid = ssock->tid;
-       csock->extrahandlesize = ssock->extrahandlesize;
        isc__nmsocket_attach(ssock, &csock->server);
        csock->accept_cb = ssock->accept_cb;
        csock->accept_cbarg = ssock->accept_cbarg;
index 252b52da9f5e6fb4d109131292e88b672a51e137..feeaf242cea43b1e8abf6a31b7ea2dee5b9732e7 100644 (file)
@@ -605,7 +605,6 @@ tlslisten_acceptcb(isc_nmhandle_t *handle, isc_result_t result, void *cbarg) {
                return (ISC_R_TLSERROR);
        }
 
-       tlssock->extrahandlesize = tlslistensock->extrahandlesize;
        isc__nmsocket_attach(tlslistensock, &tlssock->listener);
        isc_nmhandle_attach(handle, &tlssock->outerhandle);
        tlssock->peer = handle->sock->peer;
@@ -624,9 +623,8 @@ tlslisten_acceptcb(isc_nmhandle_t *handle, isc_result_t result, void *cbarg) {
 
 isc_result_t
 isc_nm_listentls(isc_nm_t *mgr, isc_sockaddr_t *iface,
-                isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-                size_t extrahandlesize, int backlog, isc_quota_t *quota,
-                SSL_CTX *sslctx, isc_nmsocket_t **sockp) {
+                isc_nm_accept_cb_t accept_cb, void *accept_cbarg, int backlog,
+                isc_quota_t *quota, SSL_CTX *sslctx, isc_nmsocket_t **sockp) {
        isc_result_t result;
        isc_nmsocket_t *tlssock = NULL;
        isc_nmsocket_t *tsock = NULL;
@@ -639,7 +637,6 @@ isc_nm_listentls(isc_nm_t *mgr, isc_sockaddr_t *iface,
        tlssock->result = ISC_R_UNSET;
        tlssock->accept_cb = accept_cb;
        tlssock->accept_cbarg = accept_cbarg;
-       tlssock->extrahandlesize = extrahandlesize;
        tlssock->tlsstream.ctx = sslctx;
        tlssock->tlsstream.tls = NULL;
 
@@ -648,8 +645,7 @@ isc_nm_listentls(isc_nm_t *mgr, isc_sockaddr_t *iface,
         * We set tlssock->outer to a socket listening for a TCP connection.
         */
        result = isc_nm_listentcp(mgr, iface, tlslisten_acceptcb, tlssock,
-                                 extrahandlesize, backlog, quota,
-                                 &tlssock->outer);
+                                 backlog, quota, &tlssock->outer);
        if (result != ISC_R_SUCCESS) {
                atomic_store(&tlssock->closed, true);
                isc__nmsocket_detach(&tlssock);
@@ -880,7 +876,7 @@ tcp_connected(isc_nmhandle_t *handle, isc_result_t result, void *cbarg);
 void
 isc_nm_tlsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
                  isc_nm_cb_t cb, void *cbarg, SSL_CTX *ctx,
-                 unsigned int timeout, size_t extrahandlesize) {
+                 unsigned int timeout) {
        isc_nmsocket_t *nsock = NULL;
 #if defined(NETMGR_TRACE) && defined(NETMGR_TRACE_VERBOSE)
        fprintf(stderr, "TLS: isc_nm_tlsconnect(): in net thread: %s\n",
@@ -891,7 +887,6 @@ isc_nm_tlsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
 
        nsock = isc_mem_get(mgr->mctx, sizeof(*nsock));
        isc__nmsocket_init(nsock, mgr, isc_nm_tlssocket, local);
-       nsock->extrahandlesize = extrahandlesize;
        nsock->result = ISC_R_UNSET;
        nsock->connect_cb = cb;
        nsock->connect_cbarg = cbarg;
@@ -899,7 +894,7 @@ isc_nm_tlsconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        nsock->tlsstream.ctx = ctx;
 
        isc_nm_tcpconnect(mgr, local, peer, tcp_connected, nsock,
-                         nsock->connect_timeout, 0);
+                         nsock->connect_timeout);
 }
 
 static void
index 3a43cd3b84d79e7321e383ba1ab80041922835ff..7b556aa3e3cf9a3aabd87d7ad3e43c750ea238c1 100644 (file)
@@ -121,7 +121,6 @@ start_udp_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock,
        atomic_init(&csock->reading, true);
        csock->recv_cb = sock->recv_cb;
        csock->recv_cbarg = sock->recv_cbarg;
-       csock->extrahandlesize = sock->extrahandlesize;
        csock->tid = tid;
 
 #if HAVE_SO_REUSEPORT_LB
@@ -147,7 +146,7 @@ enqueue_stoplistening(isc_nmsocket_t *sock) {
 
 isc_result_t
 isc_nm_listenudp(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nm_recv_cb_t cb,
-                void *cbarg, size_t extrahandlesize, isc_nmsocket_t **sockp) {
+                void *cbarg, isc_nmsocket_t **sockp) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        size_t children_size = 0;
@@ -169,7 +168,6 @@ isc_nm_listenudp(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nm_recv_cb_t cb,
 
        sock->recv_cb = cb;
        sock->recv_cbarg = cbarg;
-       sock->extrahandlesize = extrahandlesize;
        sock->result = ISC_R_UNSET;
 
        sock->tid = 0;
@@ -340,8 +338,7 @@ isc__nm_async_routeconnect(isc__networker_t *worker, isc__netievent_t *ev0) {
 #endif /* USE_ROUTE_SOCKET */
 
 isc_result_t
-isc_nm_routeconnect(isc_nm_t *mgr, isc_nm_cb_t cb, void *cbarg,
-                   size_t extrahandlesize) {
+isc_nm_routeconnect(isc_nm_t *mgr, isc_nm_cb_t cb, void *cbarg) {
 #ifdef USE_ROUTE_SOCKET
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
@@ -355,7 +352,6 @@ isc_nm_routeconnect(isc_nm_t *mgr, isc_nm_cb_t cb, void *cbarg,
 
        sock->connect_cb = cb;
        sock->connect_cbarg = cbarg;
-       sock->extrahandlesize = extrahandlesize;
        sock->result = ISC_R_UNSET;
        atomic_init(&sock->client, true);
        sock->route_sock = true;
@@ -961,8 +957,7 @@ isc__nm_async_udpconnect(isc__networker_t *worker, isc__netievent_t *ev0) {
 
 void
 isc_nm_udpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
-                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-                 size_t extrahandlesize) {
+                 isc_nm_cb_t cb, void *cbarg, unsigned int timeout) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *sock = NULL;
        isc__netievent_udpconnect_t *event = NULL;
@@ -981,7 +976,6 @@ isc_nm_udpconnect(isc_nm_t *mgr, isc_sockaddr_t *local, isc_sockaddr_t *peer,
        sock->connect_cb = cb;
        sock->connect_cbarg = cbarg;
        sock->read_timeout = timeout;
-       sock->extrahandlesize = extrahandlesize;
        sock->peer = *peer;
        sock->result = ISC_R_UNSET;
        atomic_init(&sock->client, true);
index 0a8a045f657ad4717dee1f8e449988913d28a844..65c5ec6106622cdd5c80deac6344ded15b934e99 100644 (file)
@@ -170,7 +170,7 @@ connect_send_request(isc_nm_t *mgr, const char *uri, bool post,
        }
 
        isc_nm_httpconnect(mgr, NULL, &tcp_listen_addr, uri, post,
-                          connect_send_cb, data, ctx, timeout, 0);
+                          connect_send_cb, data, ctx, timeout);
 }
 
 static int
@@ -472,7 +472,7 @@ mock_doh_uv_tcp_bind(void **state) {
        WILL_RETURN(uv_tcp_bind, UV_EADDRINUSE);
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          noop_read_cb, NULL, 0);
+                                          noop_read_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, NULL, NULL,
                                   endpoints, 0, &listen_sock);
@@ -492,7 +492,7 @@ doh_noop(void **state) {
        char req_url[256];
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          noop_read_cb, NULL, 0);
+                                          noop_read_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, NULL, NULL,
@@ -540,7 +540,7 @@ doh_noresponse(void **state) {
        char req_url[256];
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          noop_read_cb, NULL, 0);
+                                          noop_read_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, NULL, NULL,
@@ -641,7 +641,7 @@ doh_timeout_recovery(void **state) {
        char req_url[256];
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, NULL, NULL,
@@ -663,7 +663,7 @@ doh_timeout_recovery(void **state) {
                        ISC_NM_HTTP_DEFAULT_PATH);
        isc_nm_httpconnect(connect_nm, NULL, &tcp_listen_addr, req_url,
                           atomic_load(&POST), timeout_request_cb, NULL, ctx,
-                          T_SOFT, 0);
+                          T_SOFT);
 
        /*
         * Sleep until sends reaches 5.
@@ -773,7 +773,7 @@ doh_recv_one(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -924,7 +924,7 @@ doh_recv_two(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -941,7 +941,7 @@ doh_recv_two(void **state) {
 
        isc_nm_httpconnect(connect_nm, NULL, &tcp_listen_addr, req_url,
                           atomic_load(&POST), doh_connect_send_two_requests_cb,
-                          NULL, ctx, 5000, 0);
+                          NULL, ctx, 5000);
 
        while (atomic_load(&nsends) > 0) {
                if (atomic_load(&was_error)) {
@@ -1044,7 +1044,7 @@ doh_recv_send(void **state) {
        isc_quota_t *quotap = init_listener_quota(workers);
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -1157,7 +1157,7 @@ doh_recv_half_send(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -1267,7 +1267,7 @@ doh_half_recv_send(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -1377,7 +1377,7 @@ doh_half_recv_half_send(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
@@ -1486,7 +1486,7 @@ doh_bad_connect_uri(void **state) {
        atomic_store(&nsends, atomic_load(&total_sends));
 
        result = isc_nm_http_endpoints_add(endpoints, ISC_NM_HTTP_DEFAULT_PATH,
-                                          doh_receive_request_cb, NULL, 0);
+                                          doh_receive_request_cb, NULL);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_nm_listenhttp(listen_nm, &tcp_listen_addr, 0, quotap,
index 1acaca5e903ab61c5110161277900bb201957588..dbf3b695c334b069124571b1ec53a3395cc832b6 100644 (file)
@@ -623,7 +623,7 @@ connect_thread(isc_threadarg_t arg) {
 static void
 udp_connect(isc_nm_t *nm) {
        isc_nm_udpconnect(nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 }
 
 static void
@@ -634,7 +634,7 @@ mock_listenudp_uv_udp_open(void **state __attribute__((unused))) {
        WILL_RETURN(uv_udp_open, UV_ENOMEM);
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_not_equal(result, ISC_R_SUCCESS);
        assert_null(listen_sock);
 
@@ -649,7 +649,7 @@ mock_listenudp_uv_udp_bind(void **state __attribute__((unused))) {
        WILL_RETURN(uv_udp_bind, UV_EADDRINUSE);
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_not_equal(result, ISC_R_SUCCESS);
        assert_null(listen_sock);
 
@@ -664,7 +664,7 @@ mock_listenudp_uv_udp_recv_start(void **state __attribute__((unused))) {
        WILL_RETURN(uv_udp_recv_start, UV_EADDRINUSE);
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_not_equal(result, ISC_R_SUCCESS);
        assert_null(listen_sock);
 
@@ -678,7 +678,7 @@ mock_udpconnect_uv_udp_open(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        RESET_RETURN;
@@ -691,7 +691,7 @@ mock_udpconnect_uv_udp_bind(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        RESET_RETURN;
@@ -705,7 +705,7 @@ mock_udpconnect_uv_udp_connect(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        RESET_RETURN;
@@ -719,7 +719,7 @@ mock_udpconnect_uv_recv_buffer_size(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        RESET_RETURN;
@@ -732,7 +732,7 @@ mock_udpconnect_uv_send_buffer_size(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        RESET_RETURN;
@@ -744,7 +744,7 @@ udp_noop(void **state __attribute__((unused))) {
        isc_nmsocket_t *listen_sock = NULL;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_nm_stoplistening(listen_sock);
@@ -754,7 +754,7 @@ udp_noop(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        atomic_assert_int_eq(cconnects, 0);
@@ -770,12 +770,12 @@ udp_noresponse(void **state __attribute__((unused))) {
        isc_nmsocket_t *listen_sock = NULL;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_EQ(csends, 1);
@@ -831,7 +831,7 @@ udp_timeout_recovery(void **state __attribute__((unused))) {
         * Listen using the noop callback so that client reads will time out.
         */
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, noop_recv_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        /*
@@ -842,7 +842,7 @@ udp_timeout_recovery(void **state __attribute__((unused))) {
        connect_readcb = timeout_retry_cb;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_SOFT, 0);
+                         connect_connect_cb, NULL, T_SOFT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_GE(csends, 1);
@@ -866,12 +866,12 @@ udp_recv_one(void **state __attribute__((unused))) {
        atomic_store(&nsends, 1);
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_LE(nsends, 0);
@@ -906,18 +906,18 @@ udp_recv_two(void **state __attribute__((unused))) {
        atomic_store(&nsends, 2);
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_udpconnect(connect_nm, &udp_connect_addr, &udp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 2);
        WAIT_FOR_LE(nsends, 0);
@@ -953,7 +953,7 @@ udp_recv_send(void **state __attribute__((unused))) {
        SKIP_IN_CI;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -998,7 +998,7 @@ udp_recv_half_send(void **state __attribute__((unused))) {
        SKIP_IN_CI;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1044,7 +1044,7 @@ udp_half_recv_send(void **state __attribute__((unused))) {
        SKIP_IN_CI;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1093,7 +1093,7 @@ udp_half_recv_half_send(void **state __attribute__((unused))) {
        SKIP_IN_CI;
 
        result = isc_nm_listenudp(listen_nm, &udp_listen_addr, listen_read_cb,
-                                 NULL, 0, &listen_sock);
+                                 NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1145,7 +1145,7 @@ tcp_listener_init_quota(size_t nthreads) {
 static void
 tcp_connect(isc_nm_t *nm) {
        isc_nm_tcpconnect(nm, &tcp_connect_addr, &tcp_listen_addr,
-                         connect_connect_cb, NULL, T_CONNECT, 0);
+                         connect_connect_cb, NULL, T_CONNECT);
 }
 
 #if HAVE_LIBNGHTTP2
@@ -1164,40 +1164,36 @@ get_stream_connect_function(void) {
 }
 
 static isc_result_t
-stream_listen(isc_nm_accept_cb_t accept_cb, void *accept_cbarg,
-             size_t extrahandlesize, int backlog, isc_quota_t *quota,
-             isc_nmsocket_t **sockp) {
+stream_listen(isc_nm_accept_cb_t accept_cb, void *accept_cbarg, int backlog,
+             isc_quota_t *quota, isc_nmsocket_t **sockp) {
        isc_result_t result = ISC_R_SUCCESS;
 
 #if HAVE_LIBNGHTTP2
        if (stream_use_TLS) {
                result = isc_nm_listentls(listen_nm, &tcp_listen_addr,
-                                         accept_cb, accept_cbarg,
-                                         extrahandlesize, backlog, quota,
-                                         tcp_listen_tlsctx, sockp);
+                                         accept_cb, accept_cbarg, backlog,
+                                         quota, tcp_listen_tlsctx, sockp);
                return (result);
        }
 #endif
        result = isc_nm_listentcp(listen_nm, &tcp_listen_addr, accept_cb,
-                                 accept_cbarg, extrahandlesize, backlog, quota,
-                                 sockp);
+                                 accept_cbarg, backlog, quota, sockp);
 
        return (result);
 }
 
 static void
-stream_connect(isc_nm_cb_t cb, void *cbarg, unsigned int timeout,
-              size_t extrahandlesize) {
+stream_connect(isc_nm_cb_t cb, void *cbarg, unsigned int timeout) {
 #if HAVE_LIBNGHTTP2
        if (stream_use_TLS) {
                isc_nm_tlsconnect(connect_nm, &tcp_connect_addr,
                                  &tcp_listen_addr, cb, cbarg,
-                                 tcp_connect_tlsctx, timeout, extrahandlesize);
+                                 tcp_connect_tlsctx, timeout);
                return;
        }
 #endif
        isc_nm_tcpconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr, cb,
-                         cbarg, timeout, extrahandlesize);
+                         cbarg, timeout);
 }
 
 static void
@@ -1205,7 +1201,7 @@ stream_noop(void **state __attribute__((unused))) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *listen_sock = NULL;
 
-       result = stream_listen(noop_accept_cb, NULL, 0, 0, NULL, &listen_sock);
+       result = stream_listen(noop_accept_cb, NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_nm_stoplistening(listen_sock);
@@ -1214,7 +1210,7 @@ stream_noop(void **state __attribute__((unused))) {
 
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_CONNECT, 0);
+       stream_connect(connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        atomic_assert_int_eq(cconnects, 0);
@@ -1229,11 +1225,11 @@ stream_noresponse(void **state __attribute__((unused))) {
        isc_result_t result = ISC_R_SUCCESS;
        isc_nmsocket_t *listen_sock = NULL;
 
-       result = stream_listen(noop_accept_cb, NULL, 0, 0, NULL, &listen_sock);
+       result = stream_listen(noop_accept_cb, NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_CONNECT, 0);
+       stream_connect(connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_EQ(csends, 1);
@@ -1268,8 +1264,7 @@ stream_timeout_recovery(void **state __attribute__((unused))) {
         * reads to time out.
         */
        noanswer = true;
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, NULL,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        /*
@@ -1278,7 +1273,7 @@ stream_timeout_recovery(void **state __attribute__((unused))) {
        isc_nm_settimeouts(connect_nm, T_SOFT, T_SOFT, T_SOFT, T_SOFT);
        connect_readcb = timeout_retry_cb;
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_SOFT, 0);
+       stream_connect(connect_connect_cb, NULL, T_SOFT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_GE(csends, 1);
@@ -1302,12 +1297,11 @@ stream_recv_one(void **state __attribute__((unused))) {
 
        atomic_store(&nsends, 1);
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_CONNECT, 0);
+       stream_connect(connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_LE(nsends, 0);
@@ -1342,17 +1336,16 @@ stream_recv_two(void **state __attribute__((unused))) {
 
        atomic_store(&nsends, 2);
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_CONNECT, 0);
+       stream_connect(connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
 
        isc_refcount_increment0(&active_cconnects);
-       stream_connect(connect_connect_cb, NULL, T_CONNECT, 0);
+       stream_connect(connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 2);
        WAIT_FOR_LE(nsends, 0);
@@ -1388,8 +1381,7 @@ stream_recv_send(void **state __attribute__((unused))) {
 
        SKIP_IN_CI;
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1439,8 +1431,7 @@ stream_recv_half_send(void **state __attribute__((unused))) {
 
        SKIP_IN_CI;
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1491,8 +1482,7 @@ stream_half_recv_send(void **state __attribute__((unused))) {
 
        SKIP_IN_CI;
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1546,8 +1536,7 @@ stream_half_recv_half_send(void **state __attribute__((unused))) {
 
        SKIP_IN_CI;
 
-       result = stream_listen(stream_accept_cb, NULL, 0, 0, quotap,
-                              &listen_sock);
+       result = stream_listen(stream_accept_cb, NULL, 0, quotap, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1741,7 +1730,7 @@ tcp_half_recv_half_send_quota_sendback(void **state) {
 static void
 tcpdns_connect(isc_nm_t *nm) {
        isc_nm_tcpdnsconnect(nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
 }
 
 static void
@@ -1750,7 +1739,7 @@ tcpdns_noop(void **state __attribute__((unused))) {
        isc_nmsocket_t *listen_sock = NULL;
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr, noop_recv_cb,
-                                    NULL, noop_accept_cb, NULL, 0, 0, NULL,
+                                    NULL, noop_accept_cb, NULL, 0, NULL,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -1761,7 +1750,7 @@ tcpdns_noop(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
        isc__netmgr_shutdown(connect_nm);
 
        atomic_assert_int_eq(cconnects, 0);
@@ -1778,7 +1767,7 @@ tcpdns_noresponse(void **state __attribute__((unused))) {
 
        isc_refcount_increment0(&active_cconnects);
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr, noop_recv_cb,
-                                    NULL, noop_accept_cb, NULL, 0, 0, NULL,
+                                    NULL, noop_accept_cb, NULL, 0, NULL,
                                     &listen_sock);
        if (result != ISC_R_SUCCESS) {
                isc_refcount_decrement(&active_cconnects);
@@ -1787,7 +1776,7 @@ tcpdns_noresponse(void **state __attribute__((unused))) {
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_EQ(csends, 1);
@@ -1824,7 +1813,7 @@ tcpdns_timeout_recovery(void **state __attribute__((unused))) {
        noanswer = true;
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        /*
@@ -1836,7 +1825,7 @@ tcpdns_timeout_recovery(void **state __attribute__((unused))) {
        isc_nm_settimeouts(connect_nm, T_SOFT, T_SOFT, T_SOFT, T_SOFT);
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_SOFT, 0);
+                            connect_connect_cb, NULL, T_SOFT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_GE(csends, 1);
@@ -1861,12 +1850,12 @@ tcpdns_recv_one(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
        WAIT_FOR_LE(nsends, 0);
@@ -1902,18 +1891,18 @@ tcpdns_recv_two(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 1);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tcpdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0);
+                            connect_connect_cb, NULL, T_CONNECT);
 
        WAIT_FOR_EQ(cconnects, 2);
 
@@ -1951,7 +1940,7 @@ tcpdns_recv_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -1997,7 +1986,7 @@ tcpdns_recv_half_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -2044,7 +2033,7 @@ tcpdns_half_recv_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -2094,7 +2083,7 @@ tcpdns_half_recv_half_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentcpdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, &listen_sock);
+                                    NULL, 0, NULL, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        memset(threads, 0, sizeof(threads));
@@ -2137,7 +2126,7 @@ static void
 tls_connect(isc_nm_t *nm) {
        isc_nm_tlsconnect(nm, &tcp_connect_addr, &tcp_listen_addr,
                          connect_connect_cb, NULL, tcp_connect_tlsctx,
-                         T_CONNECT, 0);
+                         T_CONNECT);
 }
 
 static void
@@ -2320,7 +2309,7 @@ tls_half_recv_half_send_quota_sendback(void **state) {
 static void
 tlsdns_connect(isc_nm_t *nm) {
        isc_nm_tlsdnsconnect(nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 }
 
@@ -2330,7 +2319,7 @@ tlsdns_noop(void **state __attribute__((unused))) {
        isc_nmsocket_t *listen_sock = NULL;
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr, noop_recv_cb,
-                                    NULL, noop_accept_cb, NULL, 0, 0, NULL,
+                                    NULL, noop_accept_cb, NULL, 0, NULL,
                                     tcp_listen_tlsctx, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2341,7 +2330,7 @@ tlsdns_noop(void **state __attribute__((unused))) {
        connect_readcb = NULL;
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        isc__netmgr_shutdown(connect_nm);
@@ -2363,13 +2352,13 @@ tlsdns_noresponse(void **state __attribute__((unused))) {
        isc_sockaddr_fromin6(&connect_addr, &in6addr_loopback, 0);
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr, noop_recv_cb,
-                                    NULL, noop_accept_cb, NULL, 0, 0, NULL,
+                                    NULL, noop_accept_cb, NULL, 0, NULL,
                                     tcp_listen_tlsctx, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(cconnects, 1);
@@ -2411,7 +2400,7 @@ tlsdns_timeout_recovery(void **state __attribute__((unused))) {
        noanswer = true;
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2424,7 +2413,7 @@ tlsdns_timeout_recovery(void **state __attribute__((unused))) {
        isc_nm_settimeouts(connect_nm, T_SOFT, T_SOFT, T_SOFT, T_SOFT);
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_SOFT, 0,
+                            connect_connect_cb, NULL, T_SOFT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(cconnects, 1);
@@ -2450,13 +2439,13 @@ tlsdns_recv_one(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(cconnects, 1);
@@ -2493,20 +2482,20 @@ tlsdns_recv_two(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(cconnects, 1);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &tcp_connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(cconnects, 2);
@@ -2545,7 +2534,7 @@ tlsdns_recv_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2592,7 +2581,7 @@ tlsdns_recv_half_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2640,7 +2629,7 @@ tlsdns_half_recv_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2691,7 +2680,7 @@ tlsdns_half_recv_half_send(void **state __attribute__((unused))) {
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr,
                                     listen_read_cb, NULL, listen_accept_cb,
-                                    NULL, 0, 0, NULL, tcp_listen_tlsctx,
+                                    NULL, 0, NULL, tcp_listen_tlsctx,
                                     &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
@@ -2768,13 +2757,13 @@ tlsdns_connect_noalpn(void **state __attribute__((unused))) {
        isc_sockaddr_fromin6(&connect_addr, &in6addr_loopback, 0);
 
        result = isc_nm_listentlsdns(listen_nm, &tcp_listen_addr, noop_recv_cb,
-                                    NULL, noop_accept_cb, NULL, 0, 0, NULL,
+                                    NULL, noop_accept_cb, NULL, 0, NULL,
                                     tcp_listen_tlsctx, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &connect_addr, &tcp_listen_addr,
-                            tlsdns_connect_connect_noalpn, NULL, T_CONNECT, 0,
+                            tlsdns_connect_connect_noalpn, NULL, T_CONNECT,
                             connect_tlsctx_noalpn);
 
        WAIT_FOR_EQ(active_cconnects, 0);
@@ -2835,13 +2824,13 @@ tlsdns_listen_noalpn(void **state __attribute__((unused))) {
        /* We use TLS stream listener here intentionally, as it does not
         * try to do ALPN. */
        result = isc_nm_listentls(listen_nm, &tcp_listen_addr,
-                                 tls_accept_cb_noalpn, NULL, 0, 0, NULL,
+                                 tls_accept_cb_noalpn, NULL, 0, NULL,
                                  server_tlsctx_noalpn, &listen_sock);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_refcount_increment0(&active_cconnects);
        isc_nm_tlsdnsconnect(connect_nm, &connect_addr, &tcp_listen_addr,
-                            connect_connect_cb, NULL, T_CONNECT, 0,
+                            connect_connect_cb, NULL, T_CONNECT,
                             tcp_connect_tlsctx);
 
        WAIT_FOR_EQ(saccepts, 1);
index 2cd191dd218deaf0073cdd6f1148766be67f34fa..2f5c1dd2a11e1c2de5f5b51c925690b94b5206db 100644 (file)
@@ -1656,6 +1656,11 @@ ns__client_reset_cb(void *client0) {
 void
 ns__client_put_cb(void *client0) {
        ns_client_t *client = client0;
+       ns_clientmgr_t *manager = NULL;
+
+       REQUIRE(NS_CLIENT_VALID(client));
+
+       manager = client->manager;
 
        ns_client_log(client, DNS_LOGCATEGORY_SECURITY, NS_LOGMODULE_CLIENT,
                      ISC_LOG_DEBUG(3), "freeing client");
@@ -1664,30 +1669,29 @@ ns__client_put_cb(void *client0) {
         * Call this first because it requires a valid client.
         */
        ns_query_free(client);
+       client_extendederror_reset(client);
 
        client->magic = 0;
        client->shuttingdown = true;
 
-       isc_mem_put(client->manager->mctx, client->sendbuf,
-                   NS_CLIENT_SEND_BUFFER_SIZE);
+       isc_mem_put(manager->mctx, client->sendbuf, NS_CLIENT_SEND_BUFFER_SIZE);
        if (client->opt != NULL) {
                INSIST(dns_rdataset_isassociated(client->opt));
                dns_rdataset_disassociate(client->opt);
                dns_message_puttemprdataset(client->message, &client->opt);
        }
-       client_extendederror_reset(client);
 
        dns_message_detach(&client->message);
 
-       if (client->manager != NULL) {
-               clientmgr_detach(&client->manager);
-       }
-
        /*
         * Destroy the fetchlock mutex that was created in
         * ns_query_init().
         */
        isc_mutex_destroy(&client->query.fetchlock);
+
+       isc_mem_put(manager->mctx, client, sizeof(*client));
+
+       clientmgr_detach(&manager);
 }
 
 /*
@@ -1728,8 +1732,9 @@ ns__client_request(isc_nmhandle_t *handle, isc_result_t eresult,
                        ns_interfacemgr_getclientmgr(ifp->mgr);
 
                INSIST(VALID_MANAGER(clientmgr));
+               INSIST(clientmgr->tid == isc_nm_tid());
 
-               client = isc_nmhandle_getextra(handle);
+               client = isc_mem_get(clientmgr->mctx, sizeof(*client));
 
                result = ns__client_setup(client, clientmgr, true);
                if (result != ISC_R_SUCCESS) {
index 750273315e1782262f1327d9f527c53ac54f71a4..da7f6e8b2c9af964b55c6d82d677f4f31eebeb67 100644 (file)
@@ -363,7 +363,7 @@ ns_interfacemgr_create(isc_mem_t *mctx, ns_server_t *sctx,
 #endif /* if defined(HAVE_GEOIP2) */
 
        if (scan) {
-               result = isc_nm_routeconnect(nm, route_connected, mgr, 0);
+               result = isc_nm_routeconnect(nm, route_connected, mgr);
                if (result != ISC_R_SUCCESS) {
                        isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
                                      "unable to open route socket: %s",
@@ -514,8 +514,7 @@ ns_interface_listenudp(ns_interface_t *ifp) {
 
        /* Reserve space for an ns_client_t with the netmgr handle */
        result = isc_nm_listenudp(ifp->mgr->nm, &ifp->addr, ns__client_request,
-                                 ifp, sizeof(ns_client_t),
-                                 &ifp->udplistensocket);
+                                 ifp, &ifp->udplistensocket);
        return (result);
 }
 
@@ -525,7 +524,7 @@ ns_interface_listentcp(ns_interface_t *ifp) {
 
        result = isc_nm_listentcpdns(
                ifp->mgr->nm, &ifp->addr, ns__client_request, ifp,
-               ns__client_tcpconn, ifp, sizeof(ns_client_t), ifp->mgr->backlog,
+               ns__client_tcpconn, ifp, ifp->mgr->backlog,
                &ifp->mgr->sctx->tcpquota, &ifp->tcplistensocket);
        if (result != ISC_R_SUCCESS) {
                isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_ERROR,
@@ -565,7 +564,7 @@ ns_interface_listentls(ns_interface_t *ifp, isc_tlsctx_t *sslctx) {
 
        result = isc_nm_listentlsdns(
                ifp->mgr->nm, &ifp->addr, ns__client_request, ifp,
-               ns__client_tcpconn, ifp, sizeof(ns_client_t), ifp->mgr->backlog,
+               ns__client_tcpconn, ifp, ifp->mgr->backlog,
                &ifp->mgr->sctx->tcpquota, sslctx, &ifp->tcplistensocket);
 
        if (result != ISC_R_SUCCESS) {
@@ -603,8 +602,7 @@ ns_interface_listenhttp(ns_interface_t *ifp, isc_tlsctx_t *sslctx, char **eps,
 
        for (size_t i = 0; i < neps; i++) {
                result = isc_nm_http_endpoints_add(epset, eps[i],
-                                                  ns__client_request, ifp,
-                                                  sizeof(ns_client_t));
+                                                  ns__client_request, ifp);
                if (result != ISC_R_SUCCESS) {
                        break;
                }
index f1c1545f96ba6f434b253a851d0ad97cfd68734b..122db814f301fe92266c037912bbfa44d48ae441 100644 (file)
@@ -118,7 +118,6 @@ isc__nmhandle_detach(isc_nmhandle_t **handlep FLARG) {
                client->state = 4;
                ns__client_reset_cb(client);
                ns__client_put_cb(client);
-               isc_mem_put(mctx, client, sizeof(ns_client_t));
                atomic_store(&client_addrs[i], (uintptr_t)NULL);
        }
 
@@ -557,7 +556,7 @@ ns_test_cleanup_zone(void) {
 isc_result_t
 ns_test_getclient(ns_interface_t *ifp0, bool tcp, ns_client_t **clientp) {
        isc_result_t result;
-       ns_client_t *client = isc_mem_get(mctx, sizeof(ns_client_t));
+       ns_client_t *client = isc_mem_get(clientmgr->mctx, sizeof(*client));
        int i;
 
        UNUSED(ifp0);