From 4c2e40a4889db370308c77e63dd2f10d3a292bdf Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 13 Sep 2014 15:28:08 +0200 Subject: [PATCH] url: let the backend decide CURLOPT_SSL_CTX_ support ... to further remove specific TLS backend knowledge from url.c --- lib/url.c | 14 ++++++++------ lib/vtls/openssl.h | 3 +++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/url.c b/lib/url.c index 3e90d4e30..74eb7e49b 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1959,24 +1959,26 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, data->set.ssl.verifyhost = (0 != arg)?TRUE:FALSE; break; -#ifdef USE_SSLEAY - /* since these two options are only possible to use on an OpenSSL- - powered libcurl we #ifdef them on this condition so that libcurls - built against other SSL libs will return a proper error when trying - to set this option! */ case CURLOPT_SSL_CTX_FUNCTION: +#ifdef have_curlssl_ssl_ctx /* * Set a SSL_CTX callback */ data->set.ssl.fsslctx = va_arg(param, curl_ssl_ctx_callback); +#else + result = CURLE_NOT_BUILT_IN; +#endif break; case CURLOPT_SSL_CTX_DATA: +#ifdef have_curlssl_ssl_ctx /* * Set a SSL_CTX callback parameter pointer */ data->set.ssl.fsslctxp = va_arg(param, void *); - break; +#else + result = CURLE_NOT_BUILT_IN; #endif + break; case CURLOPT_CERTINFO: #ifdef have_curlssl_certinfo data->set.ssl.certinfo = (0 != va_arg(param, long))?TRUE:FALSE; diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h index e6f205170..9c2602f94 100644 --- a/lib/vtls/openssl.h +++ b/lib/vtls/openssl.h @@ -82,6 +82,9 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */ /* this backend supports CURLOPT_CERTINFO */ #define have_curlssl_certinfo 1 +/* this backend suppots CURLOPT_SSL_CTX_* */ +#define have_curlssl_ssl_ctx 1 + /* API setup for OpenSSL */ #define curlssl_init Curl_ossl_init #define curlssl_cleanup Curl_ossl_cleanup