From: Artem Boldariev Date: Thu, 30 Mar 2023 15:37:21 +0000 (+0300) Subject: TLS Stream: backport connect callback handling behaviour from main X-Git-Tag: v9.18.14~21^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=d1d4f6e3620ff933474f025a68a3478ea25e134a;p=thirdparty%2Fbind9.git TLS Stream: backport connect callback handling behaviour from main This commit contains the backport of the behaviour for handling TLS connect callbacks when wrapping up. The current behaviour have not caused any problems to us, yet, but we are changing it to remain on the safer side. --- diff --git a/lib/isc/netmgr/tlsstream.c b/lib/isc/netmgr/tlsstream.c index d18655d7434..7b490719bba 100644 --- a/lib/isc/netmgr/tlsstream.c +++ b/lib/isc/netmgr/tlsstream.c @@ -344,10 +344,15 @@ tls_try_handshake(isc_nmsocket_t *sock, isc_result_t *presult) { INSIST(sock->statichandle == NULL); isc__nmsocket_log_tls_session_reuse(sock, sock->tlsstream.tls); tlshandle = isc__nmhandle_get(sock, &sock->peer, &sock->iface); + + if (isc__nm_closing(sock)) { + result = ISC_R_SHUTTINGDOWN; + } + if (sock->tlsstream.server) { if (isc__nmsocket_closing(sock->listener)) { result = ISC_R_CANCELED; - } else { + } else if (result == ISC_R_SUCCESS) { result = sock->listener->accept_cb( tlshandle, result, sock->listener->accept_cbarg); @@ -466,7 +471,6 @@ tls_do_bio(isc_nmsocket_t *sock, isc_region_t *received_data, INSIST(SSL_is_init_finished( sock->tlsstream.tls) == 1); - INSIST(!atomic_load(&sock->client)); finish = true; } }