Skip to content

Don't destroy tlssocket until closed

Ondřej Surý requested to merge 3509-dont-destroy-tlssocket-until-closed into main

If the isc___nmsocket_prep_destroy() is called on the not-yet-closed socket, the code calls respective isc__nm_*_close() function and exit. When the socket is already closed, the isc___nmsocket_prep_destroy() also calls nmsocket_maybe_destroy() that finally destroys the socket.

Fix the TLS transport which would be the only one breaking the paradigm, calling the isc__nm_tls_close() and then immediately calling nmsocket_maybe_destroy() on the same socket. Because the tlsclose is asynchronous, this might lead into wrong order of operations.

Closes #3509

Merge request reports