aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_getparam.c4
-rw-r--r--src/tool_help.c2
-rw-r--r--src/tool_operate.c9
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)