1
0
mirror of https://github.com/moparisthebest/curl synced 2025-01-11 05:58:01 -05:00

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_NOW 7.10
CURLVERSION_SECOND 7.11.1 CURLVERSION_SECOND 7.11.1
CURLVERSION_THIRD 7.12.0 CURLVERSION_THIRD 7.12.0
CURLVERSION_SIXTH 7.66.0
CURL_CHUNK_BGN_FUNC_FAIL 7.21.0 CURL_CHUNK_BGN_FUNC_FAIL 7.21.0
CURL_CHUNK_BGN_FUNC_OK 7.21.0 CURL_CHUNK_BGN_FUNC_OK 7.21.0
CURL_CHUNK_BGN_FUNC_SKIP 7.21.0 CURL_CHUNK_BGN_FUNC_SKIP 7.21.0

View File

@ -2714,6 +2714,7 @@ typedef enum {
CURLVERSION_THIRD, CURLVERSION_THIRD,
CURLVERSION_FOURTH, CURLVERSION_FOURTH,
CURLVERSION_FIFTH, CURLVERSION_FIFTH,
CURLVERSION_SIXTH,
CURLVERSION_LAST /* never actually use this */ CURLVERSION_LAST /* never actually use this */
} CURLversion; } CURLversion;
@ -2722,7 +2723,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_FIFTH #define CURLVERSION_NOW CURLVERSION_SIXTH
typedef struct { typedef struct {
CURLversion age; /* age of the returned struct */ CURLversion age; /* age of the returned struct */
@ -2751,11 +2752,15 @@ typedef struct {
const char *libssh_version; /* human readable string */ const char *libssh_version; /* human readable string */
/* These fields were added in CURLVERSION_FIFTH */ /* These fields were added in CURLVERSION_FIFTH */
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. */
/* 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; } curl_version_info_data;
#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ #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 */ NULL, /* ssh lib version */
0, /* brotli_ver_num */ 0, /* brotli_ver_num */
NULL, /* brotli version */ NULL, /* brotli version */
0, /* nghttp2 version number */
NULL /* nghttp2 version string */
}; };
curl_version_info_data *curl_version_info(CURLversion stamp) 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; version_info.brotli_version = brotli_buffer;
#endif #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 */ (void)stamp; /* avoid compiler warnings, we don't use this */
initialized = true; initialized = true;