Commit 29e68b20 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

curl: add --post303 to set the CURL_REDIR_POST_303 option

parent 0b516b71
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+4 −0
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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  "
+6 −3
Original line number Diff line number Diff line
@@ -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)