From a902bb8250347bd8a7c23f3fba624e386ffa3a50 Mon Sep 17 00:00:00 2001
From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Date: Sat, 30 Jun 2012 21:17:44 +0900
Subject: [PATCH 2/2] Added runtime version check for libmetalink

---
 src/tool_getparam.c |   21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index 4bdf0a5..be4251c 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -824,7 +824,26 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
       case 'J': /* --metalink */
         {
 #ifdef USE_METALINK
-          config->use_metalink = toggle;
+          const int req_major = 0;
+          const int req_minor = 1;
+          const int req_patch = 0;
+          int major, minor, patch;
+          metalink_get_version(&major, &minor, &patch);
+          if(major > req_major||
+             (major == req_major &&
+              (minor > req_minor ||
+               (minor == req_minor &&
+                patch >= req_patch))))
+            config->use_metalink = toggle;
+          else {
+            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",
+                  req_major, req_minor, req_patch,
+                  major, minor, patch);
+            return PARAM_BAD_USE;
+          }
 #else
           warnf(config, "--metalink option is ignored because the binary is "
                 "built without the Metalink support.\n");
-- 
1.7.10

