]> granicus.if.org Git - curl/commitdiff
CURLOPT_CAPATH: return failure if set without backend support
authorDaniel Stenberg <daniel@haxx.se>
Sat, 13 Sep 2014 12:56:27 +0000 (14:56 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 13 Sep 2014 12:56:27 +0000 (14:56 +0200)
lib/url.c
lib/vtls/openssl.h
lib/vtls/polarssl.h

index 67126ab35a36f8a93cf3a3c01e44c8a4bd34c953..b4d4a3919e3d8b4f2ec046e01ceb3f23d0cfe352 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -1991,6 +1991,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
                        va_arg(param, char *));
     break;
   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
      * 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. */
     result = setstropt(&data->set.str[STRING_SSL_CAPATH],
                        va_arg(param, char *));
+#else
+    result = CURLE_NOT_BUILT_IN;
+#endif
     break;
   case CURLOPT_CRLFILE:
     /*
index 1a55ffc2f14c30af2bbe90d5b033a1317e0ac02b..6d6c75c829a233979c7c8922d7fe017ff1aa7dfa 100644 (file)
@@ -76,6 +76,9 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */
 /* this backend provides these functions: */
 #define have_curlssl_md5sum 1
 
+/* this backend supports the CAPATH option */
+#define have_ca_path 1
+
 /* API setup for OpenSSL */
 #define curlssl_init Curl_ossl_init
 #define curlssl_cleanup Curl_ossl_cleanup
index 9ab7e47e5a16d6fb27c6142217802e9704b35ca6..dbe01966f8853c1c78062105e06ace800a1034f6 100644 (file)
@@ -8,6 +8,7 @@
  *                             \___|\___/|_| \_\_____|
  *
  * 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
  * 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);
 int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex);
 
+/* this backend supports the CAPATH option */
+#define have_ca_path 1
+
 /* API setup for PolarSSL */
 #define curlssl_init() polarssl_init()
 #define curlssl_cleanup() polarssl_cleanup()