diff options
-rw-r--r-- | src/tool_cfgable.h | 1 | ||||
-rw-r--r-- | src/tool_getparam.c | 4 | ||||
-rw-r--r-- | src/tool_help.c | 2 | ||||
-rw-r--r-- | src/tool_operate.c | 9 |
4 files changed, 13 insertions, 3 deletions
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 38a71d309..68204ed27 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -187,6 +187,7 @@ struct Configurable { bool raw; bool post301; bool post302; + bool post303; bool nokeepalive; /* for keepalive needs */ long alivetime; bool content_disposition; /* use Content-disposition filename */ diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 4fe2a6431..c9cf9e44d 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -171,6 +171,7 @@ static const struct LongShort aliases[]= { {"$F", "resolve", TRUE}, {"$G", "delegation", TRUE}, {"$H", "mail-auth", TRUE}, + {"$I", "post303", FALSE}, {"0", "http1.0", FALSE}, {"1", "tlsv1", FALSE}, {"2", "sslv2", FALSE}, @@ -764,6 +765,9 @@ ParameterError getparameter(char *flag, /* f or -long-flag */ case '4': /* --post302 */ config->post302 = toggle; break; + case 'I': /* --post303 */ + config->post303 = toggle; + break; case '5': /* --noproxy */ /* This specifies the noproxy list */ GetStr(&config->noproxy, nextarg); diff --git a/src/tool_help.c b/src/tool_help.c index 31ef1d295..e5fea889f 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -140,6 +140,8 @@ static const char *const helptext[] = { "Do not switch to GET after following a 301 redirect (H)", " --post302 " "Do not switch to GET after following a 302 redirect (H)", + " --post303 " + "Do not switch to GET after following a 303 redirect (H)", " -#, --progress-bar Display transfer progress as a progress bar", " --proto PROTOCOLS Enable/disable specified protocols", " --proto-redir PROTOCOLS " diff --git a/src/tool_operate.c b/src/tool_operate.c index 04d1589d7..bd0038d4a 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -916,9 +916,12 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) if(config->authtype) my_setopt_flags(curl, CURLOPT_HTTPAUTH, config->authtype); - /* curl 7.19.1 (the 301 version existed in 7.18.2) */ - my_setopt(curl, CURLOPT_POSTREDIR, config->post301 | - (config->post302 ? CURL_REDIR_POST_302 : FALSE)); + /* curl 7.19.1 (the 301 version existed in 7.18.2), + 303 was added in 7.26.0 */ + my_setopt(curl, CURLOPT_POSTREDIR, + (config->post301 ? CURL_REDIR_POST_301 : 0) | + (config->post302 ? CURL_REDIR_POST_302 : 0) | + (config->post303 ? CURL_REDIR_POST_303 : 0)); /* new in libcurl 7.21.6 */ if(config->encoding) |