curl: add --false-start option

This commit is contained in:
Alessandro Ghedini 2015-02-14 18:17:04 +01:00 committed by Kamil Dudka
parent 185914fd31
commit 1f651d1d4d
5 changed files with 20 additions and 0 deletions

View File

@ -562,6 +562,15 @@ or no response at all is received, the verification fails.
This is currently only implemented in the OpenSSL, GnuTLS and NSS backends. This is currently only implemented in the OpenSSL, GnuTLS and NSS backends.
(Added in 7.41.0) (Added in 7.41.0)
.IP "--false-start"
(SSL) Tells curl to use false start during the TLS handshake. False start is a
mode where a TLS client will start sending application data before verifying
the server's Finished message, thus saving a round trip when performing a full
handshake.
This is currently only implemented in the NSS backend.
(Added in 7.42.0)
.IP "-f, --fail" .IP "-f, --fail"
(HTTP) Fail silently (no output at all) on server errors. This is mostly done (HTTP) Fail silently (no output at all) on server errors. This is mostly done
to better enable scripts etc to better deal with failed attempts. In normal to better enable scripts etc to better deal with failed attempts. In normal

View File

@ -207,6 +207,8 @@ struct OperationConfig {
bool noalpn; /* enable/disable TLS ALPN extension */ bool noalpn; /* enable/disable TLS ALPN extension */
char *unix_socket_path; /* path to Unix domain socket */ char *unix_socket_path; /* path to Unix domain socket */
bool falsestart;
struct GlobalConfig *global; struct GlobalConfig *global;
struct OperationConfig *prev; struct OperationConfig *prev;
struct OperationConfig *next; /* Always last in the struct */ struct OperationConfig *next; /* Always last in the struct */

View File

@ -218,6 +218,7 @@ static const struct LongShort aliases[]= {
{"Eo", "login-options", TRUE}, {"Eo", "login-options", TRUE},
{"Ep", "pinnedpubkey", TRUE}, {"Ep", "pinnedpubkey", TRUE},
{"Eq", "cert-status", FALSE}, {"Eq", "cert-status", FALSE},
{"Er", "false-start", FALSE},
{"f", "fail", FALSE}, {"f", "fail", FALSE},
{"F", "form", TRUE}, {"F", "form", TRUE},
{"Fs", "form-string", TRUE}, {"Fs", "form-string", TRUE},
@ -1368,6 +1369,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
config->verifystatus = TRUE; config->verifystatus = TRUE;
break; break;
case 'r': /* --false-start */
config->falsestart = TRUE;
break;
default: /* certificate file */ default: /* certificate file */
{ {
char *certname, *passphrase; char *certname, *passphrase;

View File

@ -83,6 +83,7 @@ static const char *const helptext[] = {
" --environment Write results to environment variables (RISC OS)", " --environment Write results to environment variables (RISC OS)",
#endif #endif
" -f, --fail Fail silently (no output at all) on HTTP errors (H)", " -f, --fail Fail silently (no output at all) on HTTP errors (H)",
" --false-start Enable TLS False Start.",
" -F, --form CONTENT Specify HTTP multipart POST data (H)", " -F, --form CONTENT Specify HTTP multipart POST data (H)",
" --form-string STRING Specify HTTP multipart POST data (H)", " --form-string STRING Specify HTTP multipart POST data (H)",
" --ftp-account DATA Account data string (F)", " --ftp-account DATA Account data string (F)",

View File

@ -1041,6 +1041,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
if(config->verifystatus) if(config->verifystatus)
my_setopt(curl, CURLOPT_SSL_VERIFYSTATUS, 1L); my_setopt(curl, CURLOPT_SSL_VERIFYSTATUS, 1L);
if(config->falsestart)
my_setopt(curl, CURLOPT_SSL_FALSESTART, 1L);
} }
if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) { if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) {