isc_condition_destroy(&sock->scond);
isc_condition_destroy(&sock->cond);
isc_mutex_destroy(&sock->lock);
+ isc__nm_tlsdns_cleanup_data(sock);
#if HAVE_LIBNGHTTP2
isc__nm_tls_cleanup_data(sock);
isc__nm_http_cleanup_data(sock);
sock->connect_timeout = timeout;
sock->result = ISC_R_UNSET;
- sock->tls.ctx = sslctx;
+ isc_tlsctx_attach(sslctx, &sock->tls.ctx);
atomic_init(&sock->client, true);
atomic_init(&sock->connecting, true);
csock->recv_cbarg = sock->recv_cbarg;
csock->backlog = sock->backlog;
csock->tid = tid;
- csock->tls.ctx = sock->tls.ctx;
+ isc_tlsctx_attach(sock->tls.ctx, &csock->tls.ctx);
/*
* We don't attach to quota, just assign - to avoid
sock->backlog = backlog;
sock->pquota = quota;
- sock->tls.ctx = sslctx;
+ isc_tlsctx_attach(sslctx, &sock->tls.ctx);
sock->tid = 0;
sock->fd = -1;
BIO_free_all(sock->tls.app_rbio);
BIO_free_all(sock->tls.app_wbio);
- sock->tls.ctx = NULL;
+ if (sock->tls.ctx != NULL) {
+ isc_tlsctx_free(&sock->tls.ctx);
+ }
isc__nmsocket_detach(&sock);
}
BIO_free_all(sock->tls.app_rbio);
BIO_free_all(sock->tls.app_wbio);
- sock->tls.ctx = NULL;
+ if (sock->tls.ctx != NULL) {
+ isc_tlsctx_free(&sock->tls.ctx);
+ }
isc__nmsocket_prep_destroy(sock);
}
return (isc_tls_verify_peer_result_string(sock->tls.tls));
}
+
+
+void
+isc__nm_tlsdns_cleanup_data(isc_nmsocket_t *sock) {
+ if ((sock->type == isc_nm_tlsdnslistener ||
+ sock->type == isc_nm_tlsdnssocket) &&
+ sock->tls.ctx != NULL)
+ {
+ isc_tlsctx_free(&sock->tls.ctx);
+ }
+}
\ No newline at end of file