CURLOPT_CAPATH: return failure if set without backend support

This commit is contained in:
Daniel Stenberg 2014-09-13 14:56:27 +02:00
parent 7d9bef9286
commit 8250f93d41
3 changed files with 11 additions and 0 deletions

View File

@ -1991,6 +1991,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
va_arg(param, char *)); va_arg(param, char *));
break; break;
case CURLOPT_CAPATH: case CURLOPT_CAPATH:
#ifdef have_ca_path /* not supported by all backends */
/* /*
* Set CA path info for SSL connection. Specify directory name of the CA * Set CA path info for SSL connection. Specify directory name of the CA
* certificates which have been prepared using openssl c_rehash utility. * certificates which have been prepared using openssl c_rehash utility.
@ -1998,6 +1999,9 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
/* This does not work on windows. */ /* This does not work on windows. */
result = setstropt(&data->set.str[STRING_SSL_CAPATH], result = setstropt(&data->set.str[STRING_SSL_CAPATH],
va_arg(param, char *)); va_arg(param, char *));
#else
result = CURLE_NOT_BUILT_IN;
#endif
break; break;
case CURLOPT_CRLFILE: case CURLOPT_CRLFILE:
/* /*

View File

@ -76,6 +76,9 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */
/* this backend provides these functions: */ /* this backend provides these functions: */
#define have_curlssl_md5sum 1 #define have_curlssl_md5sum 1
/* this backend supports the CAPATH option */
#define have_ca_path 1
/* API setup for OpenSSL */ /* API setup for OpenSSL */
#define curlssl_init Curl_ossl_init #define curlssl_init Curl_ossl_init
#define curlssl_cleanup Curl_ossl_cleanup #define curlssl_cleanup Curl_ossl_cleanup

View File

@ -8,6 +8,7 @@
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 2010, Hoi-Ho Chan, <hoiho.chan@gmail.com> * Copyright (C) 2010, Hoi-Ho Chan, <hoiho.chan@gmail.com>
* Copyright (C) 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -47,6 +48,9 @@ void Curl_polarssl_session_free(void *ptr);
size_t Curl_polarssl_version(char *buffer, size_t size); size_t Curl_polarssl_version(char *buffer, size_t size);
int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex); int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex);
/* this backend supports the CAPATH option */
#define have_ca_path 1
/* API setup for PolarSSL */ /* API setup for PolarSSL */
#define curlssl_init() polarssl_init() #define curlssl_init() polarssl_init()
#define curlssl_cleanup() polarssl_cleanup() #define curlssl_cleanup() polarssl_cleanup()