aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2014-09-13 15:28:08 +0200
committerDaniel Stenberg <daniel@haxx.se>2014-09-13 15:28:08 +0200
commit4c2e40a4889db370308c77e63dd2f10d3a292bdf (patch)
treedf6d0e99485b6283201a9fb26894081e44a2142e
parent7494f0f4981b2ccb55f1fc5aecad383a0d9a8569 (diff)
url: let the backend decide CURLOPT_SSL_CTX_ support
... to further remove specific TLS backend knowledge from url.c
-rw-r--r--lib/url.c14
-rw-r--r--lib/vtls/openssl.h3
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