curl: Added runtime version check for libmetalink
This commit is contained in:
Родитель
4e3320a679
Коммит
89b431f60f
|
@ -824,7 +824,21 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
case 'J': /* --metalink */
|
||||
{
|
||||
#ifdef USE_METALINK
|
||||
config->use_metalink = toggle;
|
||||
int major, minor, patch;
|
||||
metalink_get_version(&major, &minor, &patch);
|
||||
if((major*10000)+(minor*100)+patch < CURL_REQ_LIBMETALINK_VERS) {
|
||||
warnf(config,
|
||||
"--metalink option cannot be used because the version of "
|
||||
"the linked libmetalink library is too old. "
|
||||
"Required: %d.%d.%d, found %d.%d.%d\n",
|
||||
CURL_REQ_LIBMETALINK_MAJOR,
|
||||
CURL_REQ_LIBMETALINK_MINOR,
|
||||
CURL_REQ_LIBMETALINK_PATCH,
|
||||
major, minor, patch);
|
||||
return PARAM_BAD_USE;
|
||||
}
|
||||
else
|
||||
config->use_metalink = toggle;
|
||||
#else
|
||||
warnf(config, "--metalink option is ignored because the binary is "
|
||||
"built without the Metalink support.\n");
|
||||
|
|
|
@ -78,6 +78,17 @@ typedef struct metalinkfile {
|
|||
|
||||
#ifdef USE_METALINK
|
||||
|
||||
/*
|
||||
* curl requires libmetalink 0.1.0 or newer
|
||||
*/
|
||||
#define CURL_REQ_LIBMETALINK_MAJOR 0
|
||||
#define CURL_REQ_LIBMETALINK_MINOR 1
|
||||
#define CURL_REQ_LIBMETALINK_PATCH 0
|
||||
|
||||
#define CURL_REQ_LIBMETALINK_VERS ((CURL_REQ_LIBMETALINK_MAJOR * 10000) + \
|
||||
(CURL_REQ_LIBMETALINK_MINOR * 100) + \
|
||||
CURL_REQ_LIBMETALINK_PATCH)
|
||||
|
||||
extern const digest_params MD5_DIGEST_PARAMS[1];
|
||||
extern const digest_params SHA1_DIGEST_PARAMS[1];
|
||||
extern const digest_params SHA256_DIGEST_PARAMS[1];
|
||||
|
|
Загрузка…
Ссылка в новой задаче