diff --git a/configure.ac b/configure.ac index c6e2877362..6d3e5e7bda 100644 --- a/configure.ac +++ b/configure.ac @@ -663,6 +663,7 @@ AC_CHECK_FUNCS([SSL_CTX_set_min_proto_version]) AC_CHECK_FUNCS([SSL_CTX_up_ref]) AC_CHECK_FUNCS([SSL_read_ex SSL_peek_ex SSL_write_ex]) AC_CHECK_FUNCS([SSL_CTX_set1_cert_store X509_STORE_up_ref]) +AC_CHECK_FUNCS([SSL_SESSION_is_resumable]) # # Check for algorithm support in OpenSSL diff --git a/lib/isc/openssl_shim.c b/lib/isc/openssl_shim.c index b8dbfaa71b..1099a4a92f 100644 --- a/lib/isc/openssl_shim.c +++ b/lib/isc/openssl_shim.c @@ -196,3 +196,11 @@ SSL_CTX_set1_cert_store(SSL_CTX *ctx, X509_STORE *store) { } #endif /* !HAVE_SSL_CTX_SET1_CERT_STORE */ + +#if !HAVE_SSL_SESSION_IS_RESUMABLE +int +SSL_SESSION_is_resumable(const SSL_SESSION *sess) { + return (!sess->not_resumable && + (sess->session_id_length > 0 || sess->tlsext_ticklen > 0)); +} +#endif /* HAVE_SSL_SESSION_IS_RESUMABLE */ diff --git a/lib/isc/openssl_shim.h b/lib/isc/openssl_shim.h index c0abd14467..005055c3e8 100644 --- a/lib/isc/openssl_shim.h +++ b/lib/isc/openssl_shim.h @@ -135,3 +135,8 @@ X509_STORE_up_ref(X509_STORE *v); void SSL_CTX_set1_cert_store(SSL_CTX *ctx, X509_STORE *store); #endif /* !HAVE_SSL_CTX_SET1_CERT_STORE */ + +#if !HAVE_SSL_SESSION_IS_RESUMABLE +int +SSL_SESSION_is_resumable(const SSL_SESSION *s); +#endif /* HAVE_SSL_SESSION_IS_RESUMABLE */