tool: add --tcp-fastopen option

This commit is contained in:
Alessandro Ghedini 2016-02-16 12:21:34 +00:00 committed by Daniel Stenberg
parent 8f72b13660
commit d49087f6bc
5 changed files with 12 additions and 0 deletions

View File

@ -1742,6 +1742,8 @@ curl -T "img[1-1000].png" ftp://ftp.example.com/upload/
.IP "--tcp-nodelay"
Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for
details about this option. (Added in 7.11.2)
.IP "--tcp-fastopen"
Enable use of TCP Fast Open (RFC7413). (Added in 7.49.0)
.IP "--tftp-blksize <value>"
(TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that
curl will try to use when transferring data to or from a TFTP server. By

View File

@ -174,6 +174,7 @@ struct OperationConfig {
Kerberos 5 and SPNEGO */
bool tcp_nodelay;
bool tcp_fastopen;
long req_retry; /* number of retries */
long retry_delay; /* delay between retries (in seconds) */
long retry_maxtime; /* maximum time to keep retrying */

View File

@ -229,6 +229,7 @@ static const struct LongShort aliases[]= {
{"Eq", "cert-status", FALSE},
{"Er", "false-start", FALSE},
{"Es", "ssl-no-revoke", FALSE},
{"Et", "tcp-fastopen", FALSE},
{"f", "fail", FALSE},
{"F", "form", TRUE},
{"Fs", "form-string", TRUE},
@ -1415,6 +1416,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
config->ssl_no_revoke = TRUE;
break;
case 't': /* --tcp-fastopen */
config->tcp_fastopen = TRUE;
break;
default: /* certificate file */
{
char *certname, *passphrase;

View File

@ -221,6 +221,7 @@ static const char *const helptext[] = {
" --ssl-no-revoke Disable cert revocation checks (WinSSL)",
" --stderr FILE Where to redirect stderr (use \"-\" for stdout)",
" --tcp-nodelay Use the TCP_NODELAY option",
" --tcp-fastopen Use TCP Fast Open",
" -t, --telnet-option OPT=VAL Set telnet option",
" --tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)",
" --tftp-no-options Do not send TFTP options requests",

View File

@ -794,6 +794,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
if(config->tcp_nodelay)
my_setopt(curl, CURLOPT_TCP_NODELAY, 1L);
if(config->tcp_fastopen)
my_setopt(curl, CURLOPT_TCP_FASTOPEN, 1L);
/* where to store */
my_setopt(curl, CURLOPT_WRITEDATA, &outs);
if(metalink || !config->use_metalink)