options: check for features for some options
authorDaniel Stenberg <daniel@haxx.se>
Thu, 14 Oct 2010 20:17:32 +0000 (22:17 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 14 Oct 2010 20:18:55 +0000 (22:18 +0200)
Some options, such as the automatic decompression and some SSL related
ones now will bail out if the underlying libcurl doesn't have support
for the particular feature needed.

src/main.c

index 95b47ea3a27e5ee87ee8130eccc9ff95ff66f34e..8a942de077d4b5cbd52f2a1d5e073db6462356d1 100644 (file)
@@ -2116,6 +2116,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
       break;
 
       case 'j': /* --compressed */
+        if(toggle && !(curlinfo->features & CURL_VERSION_LIBZ))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         config->encoding = toggle;
         break;
 
@@ -2260,6 +2262,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
     case '$': /* more options without a short option */
       switch(subletter) {
       case 'a': /* --ftp-ssl */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         config->ftp_ssl = toggle;
         break;
       case 'b': /* --ftp-pasv */
@@ -2351,12 +2355,16 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
         GetStr(&config->ftp_alternative_to_user, nextarg);
         break;
       case 'v': /* --ftp-ssl-reqd */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         config->ftp_ssl_reqd = toggle;
         break;
       case 'w': /* --no-sessionid */
         config->disable_sessionid = (bool)(!toggle);
         break;
       case 'x': /* --ftp-ssl-control */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         config->ftp_ssl_control = toggle;
         break;
       case 'y': /* --ftp-ssl-ccc */