mirror of
https://github.com/curl/curl.git
synced 2026-07-28 12:53:06 +03:00
curl: add --fail-early
Exit with an error on the first transfer error instead of continuing to do the rest of the URLs. Discussion: https://curl.haxx.se/mail/archive-2016-11/0038.html
This commit is contained in:
parent
f682156a4f
commit
f82bbe01c8
6 changed files with 68 additions and 6 deletions
|
|
@ -239,7 +239,7 @@ struct GlobalConfig {
|
|||
bool tracetime; /* include timestamp? */
|
||||
int progressmode; /* CURL_PROGRESS_BAR / CURL_PROGRESS_STATS */
|
||||
char *libcurl; /* Output libcurl code to this file name */
|
||||
|
||||
bool fail_early; /* exit on first transfer error */
|
||||
struct OperationConfig *first;
|
||||
struct OperationConfig *current;
|
||||
struct OperationConfig *last; /* Always last in the struct */
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ static const struct LongShort aliases[]= {
|
|||
{"Es", "ssl-no-revoke", FALSE},
|
||||
{"Et", "tcp-fastopen", FALSE},
|
||||
{"f", "fail", FALSE},
|
||||
{"fa", "fail-early", FALSE},
|
||||
{"F", "form", TRUE},
|
||||
{"Fs", "form-string", TRUE},
|
||||
{"g", "globoff", FALSE},
|
||||
|
|
@ -1438,8 +1439,14 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
}
|
||||
break;
|
||||
case 'f':
|
||||
/* fail hard on errors */
|
||||
config->failonerror = toggle;
|
||||
switch(subletter) {
|
||||
case 'a': /* --fail-early */
|
||||
global->fail_early = toggle;
|
||||
break;
|
||||
default:
|
||||
/* fail hard on errors */
|
||||
config->failonerror = toggle;
|
||||
}
|
||||
break;
|
||||
case 'F':
|
||||
/* "form data" simulation, this is a little advanced so lets do our best
|
||||
|
|
|
|||
|
|
@ -1805,9 +1805,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||
urlnode->flags = 0;
|
||||
|
||||
/*
|
||||
** Bail out upon critical errors
|
||||
** Bail out upon critical errors or --fail-early
|
||||
*/
|
||||
if(is_fatal_error(result))
|
||||
if(is_fatal_error(result) || (result && global->fail_early))
|
||||
goto quit_curl;
|
||||
|
||||
} /* for-loop through all URLs */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue