Commit 89b431f6 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa Committed by Yang Tse
Browse files

curl: Added runtime version check for libmetalink

parent 4e3320a6
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -824,6 +824,20 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
      case 'J': /* --metalink */
        {
#ifdef USE_METALINK
          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 "
+11 −0
Original line number Diff line number Diff line
@@ -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];