1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-13 13:05:03 -05:00

curl: Added runtime version check for libmetalink

This commit is contained in:
Tatsuhiro Tsujikawa 2012-06-30 21:17:44 +09:00 committed by Yang Tse
parent 4e3320a679
commit 89b431f60f
2 changed files with 26 additions and 1 deletions

View File

@ -824,7 +824,21 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
case 'J': /* --metalink */ case 'J': /* --metalink */
{ {
#ifdef USE_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 #else
warnf(config, "--metalink option is ignored because the binary is " warnf(config, "--metalink option is ignored because the binary is "
"built without the Metalink support.\n"); "built without the Metalink support.\n");

View File

@ -78,6 +78,17 @@ typedef struct metalinkfile {
#ifdef USE_METALINK #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 MD5_DIGEST_PARAMS[1];
extern const digest_params SHA1_DIGEST_PARAMS[1]; extern const digest_params SHA1_DIGEST_PARAMS[1];
extern const digest_params SHA256_DIGEST_PARAMS[1]; extern const digest_params SHA256_DIGEST_PARAMS[1];