curl: Added runtime version check for libmetalink

This commit is contained in:
Tatsuhiro Tsujikawa 2012-06-30 21:17:44 +09:00 коммит произвёл Yang Tse
Родитель 4e3320a679
Коммит 89b431f60f
2 изменённых файлов: 26 добавлений и 1 удалений

Просмотреть файл

@ -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];