]> granicus.if.org Git - curl/commitdiff
curl_version_info: provide nghttp2 details
authorDaniel Stenberg <daniel@haxx.se>
Thu, 18 Jul 2019 08:43:16 +0000 (10:43 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 19 Jul 2019 22:06:42 +0000 (00:06 +0200)
Introducing CURLVERSION_SIXTH with nghttp2 info.

Closes #4121

docs/libcurl/symbols-in-versions
include/curl/curl.h
lib/version.c

index 5244a7cdbffb1a362b11f0e1ef7b25e3e8ff7cf2..16fb5622c242cc5b64e01c6c82ff72df2c7d3679 100644 (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
index 19f6c0b5a1eedc6c860b4e8042e343a7675b68aa..25f095a69968abf19c82d383b6408630fe35a0db 100644 (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 */
index 14b0531d37caf19ba52670f42a014ab115155a5e..941313dfb871b0c645d11cc5205ee1476852e50f 100644 (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;