mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Remove extrahandle size from netmgr
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().
This commit is contained in:
parent
4c3a985a24
commit
9de10cd153
23 changed files with 203 additions and 281 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*%
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue