mirror of
https://github.com/curl/curl.git
synced 2025-01-18 14:04:30 +08:00
curl_version_info: provide librtmp version
Ref: https://github.com/curl/curl/pull/13364#issuecomment-2054151942 Reported-by: talregev on github Closes #13368
This commit is contained in:
parent
e1f1ec028a
commit
dde4b3855e
@ -104,6 +104,9 @@ typedef struct {
|
||||
/* 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;
|
||||
~~~
|
||||
|
||||
@ -380,4 +383,3 @@ Added in 7.10
|
||||
# RETURN VALUE
|
||||
|
||||
A pointer to a curl_version_info_data struct.
|
||||
curl_version(3)
|
||||
|
@ -1130,6 +1130,7 @@ CURLVERSION_SEVENTH 7.70.0
|
||||
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
|
||||
|
@ -3038,17 +3038,18 @@ CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *share);
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
@ -3057,7 +3058,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_ELEVENTH
|
||||
#define CURLVERSION_NOW CURLVERSION_TWELFTH
|
||||
|
||||
struct curl_version_info_data {
|
||||
CURLversion age; /* age of the returned struct */
|
||||
@ -3117,6 +3118,9 @@ struct curl_version_info_data {
|
||||
/* 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;
|
||||
|
||||
|
@ -35,8 +35,10 @@
|
||||
#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)
|
||||
@ -341,4 +343,20 @@ static ssize_t rtmp_send(struct Curl_easy *data, int sockindex,
|
||||
|
||||
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 */
|
||||
|
@ -30,6 +30,8 @@ extern const struct Curl_handler Curl_handler_rtmpe;
|
||||
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 */
|
||||
|
@ -55,6 +55,7 @@
|
||||
|
||||
#ifdef USE_LIBRTMP
|
||||
#include <librtmp/rtmp.h>
|
||||
#include "curl_rtmp.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBZ
|
||||
@ -238,20 +239,8 @@ char *curl_version(void)
|
||||
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());
|
||||
@ -568,7 +557,8 @@ static curl_version_info_data version_info = {
|
||||
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)
|
||||
@ -676,5 +666,13 @@ 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user