From: Artem Boldariev Date: Mon, 2 Aug 2021 11:43:54 +0000 (+0300) Subject: Avoid memory copying during send in TLS stream X-Git-Tag: v9.17.18~40^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e301e1e3b8eae1c3e4479fcaac3464dcb1923bc7;p=thirdparty%2Fbind9.git Avoid memory copying during send in TLS stream At least at this point doing memory copying is not required. Probably it was a workaround for some problem in the earlier days of DoH, at this point it appears to be a waste of CPU cycles. --- diff --git a/lib/isc/netmgr/tlsstream.c b/lib/isc/netmgr/tlsstream.c index f203a949190..f5e65e930dc 100644 --- a/lib/isc/netmgr/tlsstream.c +++ b/lib/isc/netmgr/tlsstream.c @@ -676,7 +676,6 @@ isc__nm_async_tlssend(isc__networker_t *worker, isc__netievent_t *ev0) { tls_do_bio(sock, NULL, req, false); done: - isc_mem_free(sock->mgr->mctx, req->uvbuf.base); isc__nm_uvreq_put(&req, sock); return; } @@ -704,9 +703,7 @@ isc__nm_tls_send(isc_nmhandle_t *handle, const isc_region_t *region, isc_nmhandle_attach(handle, &uvreq->handle); uvreq->cb.send = cb; uvreq->cbarg = cbarg; - - uvreq->uvbuf.base = isc_mem_allocate(sock->mgr->mctx, region->length); - memmove(uvreq->uvbuf.base, region->base, region->length); + uvreq->uvbuf.base = (char *)region->base; uvreq->uvbuf.len = region->length; /*