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");
#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];