From 6de756c9b1de34b7a1b1d6cd978ca75f3b1d719b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 26 Mar 2020 13:05:03 +0100 Subject: version: add 'cainfo' and 'capath' to version info struct Suggested-by: Timothe Litt URL: https://curl.haxx.se/mail/lib-2020-03/0090.html Reviewed-by: Jay Satiro Closes #5150 --- docs/libcurl/curl_version_info.3 | 25 +++++++++++++++---------- docs/libcurl/symbols-in-versions | 1 + include/curl/curl.h | 10 +++++++++- lib/version.c | 12 +++++++++++- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/docs/libcurl/curl_version_info.3 b/docs/libcurl/curl_version_info.3 index de56c4c6d..bf13aebc8 100644 --- a/docs/libcurl/curl_version_info.3 +++ b/docs/libcurl/curl_version_info.3 @@ -5,7 +5,7 @@ .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * -.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al. +.\" * Copyright (C) 1998 - 2020, 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 @@ -49,7 +49,6 @@ The curl_version_info_data struct looks like this typedef struct { CURLversion age; /* see description below */ - /* when 'age' is 0 or higher, the members below also exist: */ const char *version; /* human readable string */ unsigned int version_num; /* numeric representation */ const char *host; /* human readable string */ @@ -59,27 +58,27 @@ typedef struct { const char *libz_version; /* human readable string */ const char * const *protocols; /* protocols */ - /* when 'age' is 1 or higher, the members below also exist: */ + /* when 'age' is CURLVERSION_SECOND or higher, the members below exist */ const char *ares; /* human readable string */ int ares_num; /* number */ - /* when 'age' is 2 or higher, the member below also exists: */ + /* when 'age' is CURLVERSION_THIRD or higher, the members below exist */ const char *libidn; /* human readable string */ - /* when 'age' is 3 or higher (7.16.1 or later), the members below also - exist */ + /* when 'age' is CURLVERSION_FOURTH or higher (>= 7.16.1), the members + below exist */ int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */ const char *libssh_version; /* human readable string */ - /* when 'age' is 4 or higher (7.57.0 or later), the members below also - exist */ + /* when 'age' is CURLVERSION_FIFTH or higher (>= 7.57.0), the members + below exist */ unsigned int brotli_ver_num; /* Numeric Brotli version (MAJOR << 24) | (MINOR << 12) | PATCH */ const char *brotli_version; /* human readable string. */ - /* when 'age is CURLVERSION_SIXTH or alter (7.66.0 or later), these fields - also exist */ + /* when 'age' is CURLVERSION_SIXTH or higher (>= 7.66.0), the members + below exist */ unsigned int nghttp2_ver_num; /* Numeric nghttp2 version (MAJOR << 16) | (MINOR << 8) | PATCH */ const char *nghttp2_version; /* human readable string. */ @@ -87,6 +86,12 @@ typedef struct { const char *quic_version; /* human readable quic (+ HTTP/3) library + version or NULL */ + /* when 'age' is CURLVERSION_SEVENTH or higher (>= 7.70.0), the members + below exist */ + const char *cainfo; /* the built-in default CURLOPT_CAINFO, might + be NULL */ + const char *capath; /* the built-in default CURLOPT_CAPATH, might + be NULL */ } curl_version_info_data; .fi diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions index 7882895f8..ee8413839 100644 --- a/docs/libcurl/symbols-in-versions +++ b/docs/libcurl/symbols-in-versions @@ -798,6 +798,7 @@ CURLVERSION_FIRST 7.10 CURLVERSION_FOURTH 7.16.1 CURLVERSION_NOW 7.10 CURLVERSION_SECOND 7.11.1 +CURLVERSION_SEVENTH 7.70.0 CURLVERSION_SIXTH 7.66.0 CURLVERSION_THIRD 7.12.0 CURL_CHUNK_BGN_FUNC_FAIL 7.21.0 diff --git a/include/curl/curl.h b/include/curl/curl.h index 9da97924f..716024753 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -2729,6 +2729,7 @@ typedef enum { CURLVERSION_FOURTH, CURLVERSION_FIFTH, CURLVERSION_SIXTH, + CURLVERSION_SEVENTH, CURLVERSION_LAST /* never actually use this */ } CURLversion; @@ -2737,7 +2738,7 @@ typedef enum { meant to be a built-in version number for what kind of struct the caller expects. If the struct ever changes, we redefine the NOW to another enum from above. */ -#define CURLVERSION_NOW CURLVERSION_SIXTH +#define CURLVERSION_NOW CURLVERSION_SEVENTH typedef struct { CURLversion age; /* age of the returned struct */ @@ -2776,6 +2777,13 @@ typedef struct { const char *nghttp2_version; /* human readable string. */ const char *quic_version; /* human readable quic (+ HTTP/3) library + version or NULL */ + + /* These fields were added in CURLVERSION_SEVENTH */ + const char *cainfo; /* the built-in default CURLOPT_CAINFO, might + be NULL */ + const char *capath; /* the built-in default CURLOPT_CAPATH, might + be NULL */ + } curl_version_info_data; #define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ diff --git a/lib/version.c b/lib/version.c index c7fe42a07..ed5592a26 100644 --- a/lib/version.c +++ b/lib/version.c @@ -404,7 +404,17 @@ static curl_version_info_data version_info = { NULL, /* brotli version */ 0, /* nghttp2 version number */ NULL, /* nghttp2 version string */ - NULL /* quic library string */ + NULL, /* quic library string */ +#ifdef CURL_CA_BUNDLE + CURL_CA_BUNDLE, /* cainfo */ +#else + NULL, +#endif +#ifdef CURL_CA_PATH + CURL_CA_PATH /* capath */ +#else + NULL +#endif }; curl_version_info_data *curl_version_info(CURLversion stamp) -- cgit v1.2.3