/* when 'age' is CURLVERSION_ELEVENTH or higher (>= 7.87.0), the members
below exist */
const char *const *feature_names; /* Feature names. */
+ /* when 'age' is CURLVERSION_TWELFTH or higher (>= 8.8.0), the members
+ below exist */
+ const char *const *rtmp_version; /* human readable string */
} curl_version_info_data;
~~~
# RETURN VALUE
A pointer to a curl_version_info_data struct.
-curl_version(3)
CURLVERSION_SIXTH 7.66.0
CURLVERSION_TENTH 7.77.0
CURLVERSION_THIRD 7.12.0
+CURLVERSION_TWELFTH 8.8.0
CURLWARNING 7.66.0
CURLWS_BINARY 7.86.0
CURLWS_CLOSE 7.86.0
*/
typedef enum {
- CURLVERSION_FIRST,
- CURLVERSION_SECOND,
- CURLVERSION_THIRD,
- CURLVERSION_FOURTH,
- CURLVERSION_FIFTH,
- CURLVERSION_SIXTH,
- CURLVERSION_SEVENTH,
- CURLVERSION_EIGHTH,
- CURLVERSION_NINTH,
- CURLVERSION_TENTH,
- CURLVERSION_ELEVENTH,
+ CURLVERSION_FIRST, /* 7.10 */
+ CURLVERSION_SECOND, /* 7.11.1 */
+ CURLVERSION_THIRD, /* 7.12.0 */
+ CURLVERSION_FOURTH, /* 7.16.1 */
+ CURLVERSION_FIFTH, /* 7.57.0 */
+ CURLVERSION_SIXTH, /* 7.66.0 */
+ CURLVERSION_SEVENTH, /* 7.70.0 */
+ CURLVERSION_EIGHTH, /* 7.72.0 */
+ CURLVERSION_NINTH, /* 7.75.0 */
+ CURLVERSION_TENTH, /* 7.77.0 */
+ CURLVERSION_ELEVENTH, /* 7.87.0 */
+ CURLVERSION_TWELFTH, /* 8.8.0 */
CURLVERSION_LAST /* never actually use this */
} CURLversion;
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_ELEVENTH
+#define CURLVERSION_NOW CURLVERSION_TWELFTH
struct curl_version_info_data {
CURLversion age; /* age of the returned struct */
/* These fields were added in CURLVERSION_ELEVENTH */
/* feature_names is terminated by an entry with a NULL feature name */
const char * const *feature_names;
+
+ /* These fields were added in CURLVERSION_TWELFTH */
+ const char *rtmp_version; /* human readable string. */
};
typedef struct curl_version_info_data curl_version_info_data;
#include "warnless.h"
#include <curl/curl.h>
#include <librtmp/rtmp.h>
+
+/* The last 3 #include files should be in this order */
+#include "curl_printf.h"
#include "curl_memory.h"
-/* The last #include file should be: */
#include "memdebug.h"
#if defined(_WIN32) && !defined(USE_LWIPSOCK)
return num;
}
+
+void Curl_rtmp_version(char *version, size_t len)
+{
+ char suff[2];
+ if(RTMP_LIB_VERSION & 0xff) {
+ suff[0] = (RTMP_LIB_VERSION & 0xff) + 'a' - 1;
+ suff[1] = '\0';
+ }
+ else
+ suff[0] = '\0';
+
+ msnprintf(version, len, "librtmp/%d.%d%s",
+ RTMP_LIB_VERSION >> 16, (RTMP_LIB_VERSION >> 8) & 0xff,
+ suff);
+}
+
#endif /* USE_LIBRTMP */
extern const struct Curl_handler Curl_handler_rtmpte;
extern const struct Curl_handler Curl_handler_rtmps;
extern const struct Curl_handler Curl_handler_rtmpts;
+
+void Curl_rtmp_version(char *version, size_t len);
#endif
#endif /* HEADER_CURL_RTMP_H */
#ifdef USE_LIBRTMP
#include <librtmp/rtmp.h>
+#include "curl_rtmp.h"
#endif
#ifdef HAVE_LIBZ
src[i++] = h3_version;
#endif
#ifdef USE_LIBRTMP
- {
- char suff[2];
- if(RTMP_LIB_VERSION & 0xff) {
- suff[0] = (RTMP_LIB_VERSION & 0xff) + 'a' - 1;
- suff[1] = '\0';
- }
- else
- suff[0] = '\0';
-
- msnprintf(rtmp_version, sizeof(rtmp_version), "librtmp/%d.%d%s",
- RTMP_LIB_VERSION >> 16, (RTMP_LIB_VERSION >> 8) & 0xff,
- suff);
- src[i++] = rtmp_version;
- }
+ Curl_rtmp_version(rtmp_version, sizeof(rtmp_version));
+ src[i++] = rtmp_version;
#endif
#ifdef USE_HYPER
msnprintf(hyper_buf, sizeof(hyper_buf), "Hyper/%s", hyper_version());
NULL, /* zstd version */
NULL, /* Hyper version */
NULL, /* gsasl version */
- feature_names
+ feature_names,
+ NULL /* rtmp version */
};
curl_version_info_data *curl_version_info(CURLversion stamp)
feature_names[n] = NULL; /* Terminate array. */
version_info.features = features;
+#ifdef USE_LIBRTMP
+ {
+ static char rtmp_version[30];
+ Curl_rtmp_version(rtmp_version, sizeof(rtmp_version));
+ version_info.rtmp_version = rtmp_version;
+ }
+#endif
+
return &version_info;
}