curl_version_info: provide nghttp2 details

Introducing CURLVERSION_SIXTH with nghttp2 info.

Closes #4121
This commit is contained in:
Daniel Stenberg 2019-07-18 10:43:16 +02:00
parent 0cbdf4513d
commit 828392ae10
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 18 additions and 2 deletions

View File

@ -786,6 +786,7 @@ CURLVERSION_FOURTH 7.16.1
CURLVERSION_NOW 7.10
CURLVERSION_SECOND 7.11.1
CURLVERSION_THIRD 7.12.0
CURLVERSION_SIXTH 7.66.0
CURL_CHUNK_BGN_FUNC_FAIL 7.21.0
CURL_CHUNK_BGN_FUNC_OK 7.21.0
CURL_CHUNK_BGN_FUNC_SKIP 7.21.0

View File

@ -2714,6 +2714,7 @@ typedef enum {
CURLVERSION_THIRD,
CURLVERSION_FOURTH,
CURLVERSION_FIFTH,
CURLVERSION_SIXTH,
CURLVERSION_LAST /* never actually use this */
} CURLversion;
@ -2722,7 +2723,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_FIFTH
#define CURLVERSION_NOW CURLVERSION_SIXTH
typedef struct {
CURLversion age; /* age of the returned struct */
@ -2751,11 +2752,15 @@ typedef struct {
const char *libssh_version; /* human readable string */
/* These fields were added in CURLVERSION_FIFTH */
unsigned int brotli_ver_num; /* Numeric Brotli version
(MAJOR << 24) | (MINOR << 12) | PATCH */
const char *brotli_version; /* human readable string. */
/* These fields were added in CURLVERSION_SIXTH */
unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
(MAJOR << 16) | (MINOR << 8) | PATCH */
const char *nghttp2_version; /* human readable string. */
} curl_version_info_data;
#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */

View File

@ -385,6 +385,8 @@ static curl_version_info_data version_info = {
NULL, /* ssh lib version */
0, /* brotli_ver_num */
NULL, /* brotli version */
0, /* nghttp2 version number */
NULL /* nghttp2 version string */
};
curl_version_info_data *curl_version_info(CURLversion stamp)
@ -460,6 +462,14 @@ curl_version_info_data *curl_version_info(CURLversion stamp)
version_info.brotli_version = brotli_buffer;
#endif
#ifdef USE_NGHTTP2
{
nghttp2_info *h2 = nghttp2_version(0);
version_info.nghttp2_ver_num = h2->version_num;
version_info.nghttp2_version = h2->version_str;
}
#endif
(void)stamp; /* avoid compiler warnings, we don't use this */
initialized = true;