diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c index 307070f8b..a9a1e848b 100644 --- a/src/main.c +++ b/src/main.c @@ -474,6 +474,7 @@ struct Configurable { char *cookiefile; /* read from this file */ bool cookiesession; /* new session? */ bool encoding; /* Accept-Encoding please */ + bool tr_encoding; /* Transfer-Encoding please */ long authtype; /* auth bitmask */ bool use_resume; bool resume_from_current; @@ -904,6 +905,7 @@ static void help(void) " --trace <file> Write a debug trace to the given file", " --trace-ascii <file> Like --trace but without the hex output", " --trace-time Add time stamps to trace/verbose output", + " --tr-encoding Request compressed transfer encoding (H)", " -T/--upload-file <file> Transfer <file> to remote site", " --url <URL> Set URL to work with", " -B/--use-ascii Use ASCII/text transfer", @@ -1823,7 +1825,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ {"*g", "trace", TRUE}, {"*h", "trace-ascii", TRUE}, {"*i", "limit-rate", TRUE}, - {"*j", "compressed", FALSE}, /* might take an arg someday */ + {"*j", "compressed", FALSE}, + {"*J", "tr-encoding", FALSE}, {"*k", "digest", FALSE}, {"*l", "negotiate", FALSE}, {"*m", "ntlm", FALSE}, @@ -2148,6 +2151,10 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ config->encoding = toggle; break; + case 'J': /* --tr-encoding */ + config->tr_encoding = toggle; + break; + case 'k': /* --digest */ if(toggle) config->authtype |= CURLAUTH_DIGEST; @@ -2765,13 +2772,13 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ GetStr(&config->tls_username, nextarg); else return PARAM_LIBCURL_DOESNT_SUPPORT; - break; + break; case 'l': /* TLS password */ if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) GetStr(&config->tls_password, nextarg); else return PARAM_LIBCURL_DOESNT_SUPPORT; - break; + break; case 'm': /* TLS authentication type */ if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) { GetStr(&config->tls_authtype, nextarg); @@ -2780,7 +2787,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ } else return PARAM_LIBCURL_DOESNT_SUPPORT; - break; + break; default: /* certificate file */ { char *ptr = strchr(nextarg, ':'); @@ -5381,9 +5388,11 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) if(res != CURLE_OK) goto show_error; - /* new in curl 7.10 */ - my_setopt_str(curl, CURLOPT_ENCODING, - (config->encoding) ? "" : NULL); + if(config->encoding) + my_setopt_str(curl, CURLOPT_ACCEPT_ENCODING, ""); + + if(config->tr_encoding) + my_setopt(curl, CURLOPT_TRANSFER_ENCODING, 1); /* new in curl 7.10.7, extended in 7.19.4 but this only sets 0 or 1 */ my_setopt(curl, CURLOPT_FTP_CREATE_MISSING_DIRS, |