From d0394de152ec85fac2e4bb05f97035af3a8d7918 Mon Sep 17 00:00:00 2001 From: Christian Schmitz Date: Sun, 15 Apr 2018 10:35:06 +0200 Subject: [PATCH] curl_global_sslset: always provide available backends Closes #2499 --- docs/libcurl/curl_global_sslset.3 | 5 ++++- lib/vtls/vtls.c | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/libcurl/curl_global_sslset.3 b/docs/libcurl/curl_global_sslset.3 index efac0f91f9bc20..48686ab9ee3ea9 100644 --- a/docs/libcurl/curl_global_sslset.3 +++ b/docs/libcurl/curl_global_sslset.3 @@ -5,7 +5,7 @@ .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * -.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms @@ -64,6 +64,9 @@ CURLSSLSET_UNKNOWN_BACKEND and set the \fIavail\fP pointer to the NULL-terminated list of available backends. The available backends are those that this particular build of libcurl supports. +Since libcurl 7.60.0, the \fIavail\fP pointer will always be set to the list +of alternatives if non-NULL. + Upon success, the function returns CURLSSLSET_OK. If the specified SSL backend is not available, the function returns diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 7ad18a3df8f5c1..07054f39d2955e 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -1304,6 +1304,9 @@ CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, { int i; + if(avail) + *avail = (const curl_ssl_backend **)&available_backends; + if(Curl_ssl != &Curl_ssl_multi) return id == Curl_ssl->info.id ? CURLSSLSET_OK : CURLSSLSET_TOO_LATE; @@ -1315,8 +1318,6 @@ CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, } } - if(avail) - *avail = (const curl_ssl_backend **)&available_backends; return CURLSSLSET_UNKNOWN_BACKEND; }