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
This commit is contained in:
Daniel Stenberg 2020-03-26 13:05:03 +01:00
parent 62112d2bb4
commit 6de756c9b1
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
4 changed files with 36 additions and 12 deletions

View File

@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___ .\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____| .\" * \___|\___/|_| \_\_____|
.\" * .\" *
.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * Copyright (C) 1998 - 2020, 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
@ -49,7 +49,6 @@ The curl_version_info_data struct looks like this
typedef struct { typedef struct {
CURLversion age; /* see description below */ CURLversion age; /* see description below */
/* when 'age' is 0 or higher, the members below also exist: */
const char *version; /* human readable string */ const char *version; /* human readable string */
unsigned int version_num; /* numeric representation */ unsigned int version_num; /* numeric representation */
const char *host; /* human readable string */ const char *host; /* human readable string */
@ -59,27 +58,27 @@ typedef struct {
const char *libz_version; /* human readable string */ const char *libz_version; /* human readable string */
const char * const *protocols; /* protocols */ 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 */ const char *ares; /* human readable string */
int ares_num; /* number */ 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 */ const char *libidn; /* human readable string */
/* when 'age' is 3 or higher (7.16.1 or later), the members below also /* when 'age' is CURLVERSION_FOURTH or higher (>= 7.16.1), the members
exist */ below exist */
int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */ int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */
const char *libssh_version; /* human readable string */ const char *libssh_version; /* human readable string */
/* when 'age' is 4 or higher (7.57.0 or later), the members below also /* when 'age' is CURLVERSION_FIFTH or higher (>= 7.57.0), the members
exist */ below exist */
unsigned int brotli_ver_num; /* Numeric Brotli version unsigned int brotli_ver_num; /* Numeric Brotli version
(MAJOR << 24) | (MINOR << 12) | PATCH */ (MAJOR << 24) | (MINOR << 12) | PATCH */
const char *brotli_version; /* human readable string. */ const char *brotli_version; /* human readable string. */
/* when 'age is CURLVERSION_SIXTH or alter (7.66.0 or later), these fields /* when 'age' is CURLVERSION_SIXTH or higher (>= 7.66.0), the members
also exist */ below exist */
unsigned int nghttp2_ver_num; /* Numeric nghttp2 version unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
(MAJOR << 16) | (MINOR << 8) | PATCH */ (MAJOR << 16) | (MINOR << 8) | PATCH */
const char *nghttp2_version; /* human readable string. */ const char *nghttp2_version; /* human readable string. */
@ -87,6 +86,12 @@ typedef struct {
const char *quic_version; /* human readable quic (+ HTTP/3) library + const char *quic_version; /* human readable quic (+ HTTP/3) library +
version or NULL */ 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; } curl_version_info_data;
.fi .fi

View File

@ -798,6 +798,7 @@ CURLVERSION_FIRST 7.10
CURLVERSION_FOURTH 7.16.1 CURLVERSION_FOURTH 7.16.1
CURLVERSION_NOW 7.10 CURLVERSION_NOW 7.10
CURLVERSION_SECOND 7.11.1 CURLVERSION_SECOND 7.11.1
CURLVERSION_SEVENTH 7.70.0
CURLVERSION_SIXTH 7.66.0 CURLVERSION_SIXTH 7.66.0
CURLVERSION_THIRD 7.12.0 CURLVERSION_THIRD 7.12.0
CURL_CHUNK_BGN_FUNC_FAIL 7.21.0 CURL_CHUNK_BGN_FUNC_FAIL 7.21.0

View File

@ -2729,6 +2729,7 @@ typedef enum {
CURLVERSION_FOURTH, CURLVERSION_FOURTH,
CURLVERSION_FIFTH, CURLVERSION_FIFTH,
CURLVERSION_SIXTH, CURLVERSION_SIXTH,
CURLVERSION_SEVENTH,
CURLVERSION_LAST /* never actually use this */ CURLVERSION_LAST /* never actually use this */
} CURLversion; } CURLversion;
@ -2737,7 +2738,7 @@ typedef enum {
meant to be a built-in version number for what kind of struct the caller 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 expects. If the struct ever changes, we redefine the NOW to another enum
from above. */ from above. */
#define CURLVERSION_NOW CURLVERSION_SIXTH #define CURLVERSION_NOW CURLVERSION_SEVENTH
typedef struct { typedef struct {
CURLversion age; /* age of the returned struct */ CURLversion age; /* age of the returned struct */
@ -2776,6 +2777,13 @@ typedef struct {
const char *nghttp2_version; /* human readable string. */ const char *nghttp2_version; /* human readable string. */
const char *quic_version; /* human readable quic (+ HTTP/3) library + const char *quic_version; /* human readable quic (+ HTTP/3) library +
version or NULL */ 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; } curl_version_info_data;
#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ #define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */

View File

@ -404,7 +404,17 @@ static curl_version_info_data version_info = {
NULL, /* brotli version */ NULL, /* brotli version */
0, /* nghttp2 version number */ 0, /* nghttp2 version number */
NULL, /* nghttp2 version string */ 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) curl_version_info_data *curl_version_info(CURLversion stamp)