}
#endif /* HAVE_LIBNGHTTP2 */
- sess_cache = isc_tlsctx_client_session_cache_new(
- mctx, ctx,
- ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE);
+ isc_tlsctx_client_session_cache_create(
+ mctx, ctx, ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE,
+ &sess_cache);
result = isc_tlsctx_cache_add(
query->lookup->tls_ctx_cache, tlsctxname, transport,
isc_tlsctx_enable_dot_client_alpn(tlsctx);
- sess_cache = isc_tlsctx_client_session_cache_new(
+ isc_tlsctx_client_session_cache_create(
xfr->mctx, tlsctx,
- ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE);
+ ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE,
+ &sess_cache);
found_store = NULL;
result = isc_tlsctx_cache_add(xfr->tlsctx_cache, tlsname,
* comparable to or surpass the size of a typical DNS message.
*/
-isc_tlsctx_client_session_cache_t *
-isc_tlsctx_client_session_cache_new(isc_mem_t *mctx, isc_tlsctx_t *ctx,
- const size_t max_entries);
+void
+isc_tlsctx_client_session_cache_create(
+ isc_mem_t *mctx, isc_tlsctx_t *ctx, const size_t max_entries,
+ isc_tlsctx_client_session_cache_t **cachep);
/*%<
* Create a new TLS client session cache object.
*
*\li 'mctx' is a valid memory context object;
*\li 'ctx' is a valid TLS context object;
*\li 'max_entries' is a positive number;
+ *\li 'cachep' is a valid pointer to a pointer which must be equal to NULL.
*/
void
isc_mutex_t lock;
};
-isc_tlsctx_client_session_cache_t *
-isc_tlsctx_client_session_cache_new(isc_mem_t *mctx, isc_tlsctx_t *ctx,
- const size_t max_entries) {
+void
+isc_tlsctx_client_session_cache_create(
+ isc_mem_t *mctx, isc_tlsctx_t *ctx, const size_t max_entries,
+ isc_tlsctx_client_session_cache_t **cachep) {
isc_tlsctx_client_session_cache_t *nc;
REQUIRE(ctx != NULL);
REQUIRE(max_entries > 0);
+ REQUIRE(cachep != NULL && *cachep == NULL);
nc = isc_mem_get(mctx, sizeof(*nc));
nc->magic = TLSCTX_CLIENT_SESSION_CACHE_MAGIC;
- return (nc);
+ *cachep = nc;
}
void
client_tlsctx = NULL;
isc_tlsctx_createclient(&client_tlsctx);
isc_tlsctx_enable_http2client_alpn(client_tlsctx);
- client_sess_cache = isc_tlsctx_client_session_cache_new(
+ isc_tlsctx_client_session_cache_create(
mctx, client_tlsctx,
- ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE);
+ ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE,
+ &client_sess_cache);
isc_quota_init(&listener_quota, 0);
atomic_store(&check_listener_quota, false);
isc_tlsctx_enable_dot_client_alpn(tcp_connect_tlsctx);
- tcp_tlsctx_client_sess_cache = isc_tlsctx_client_session_cache_new(
+ isc_tlsctx_client_session_cache_create(
mctx, tcp_connect_tlsctx,
- ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE);
+ ISC_TLSCTX_CLIENT_SESSION_CACHE_DEFAULT_SIZE,
+ &tcp_tlsctx_client_sess_cache);
return (0);
}