mirror of
https://github.com/curl/curl.git
synced 2026-07-27 08:37:18 +03:00
url: add CURLOPT_TCP_FASTOPEN option
This commit is contained in:
parent
a542536cf6
commit
dc68f2dab9
6 changed files with 66 additions and 0 deletions
10
lib/url.c
10
lib/url.c
|
|
@ -595,6 +595,7 @@ CURLcode Curl_init_userdefined(struct UserDefined *set)
|
|||
set->tcp_keepalive = FALSE;
|
||||
set->tcp_keepintvl = 60;
|
||||
set->tcp_keepidle = 60;
|
||||
set->tcp_fastopen = FALSE;
|
||||
|
||||
set->ssl_enable_npn = TRUE;
|
||||
set->ssl_enable_alpn = TRUE;
|
||||
|
|
@ -2631,6 +2632,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
|
|||
case CURLOPT_TCP_KEEPINTVL:
|
||||
data->set.tcp_keepintvl = va_arg(param, long);
|
||||
break;
|
||||
case CURLOPT_TCP_FASTOPEN:
|
||||
#if defined(CONNECT_DATA_IDEMPOTENT)
|
||||
data->set.tcp_fastopen = (0 != va_arg(param, long))?TRUE:FALSE;
|
||||
#else
|
||||
result = CURLE_NOT_BUILT_IN;
|
||||
#endif
|
||||
break;
|
||||
case CURLOPT_SSL_ENABLE_NPN:
|
||||
data->set.ssl_enable_npn = (0 != va_arg(param, long)) ? TRUE : FALSE;
|
||||
break;
|
||||
|
|
@ -5975,6 +5983,8 @@ static CURLcode create_conn(struct SessionHandle *data,
|
|||
conn->recv[SECONDARYSOCKET] = Curl_recv_plain;
|
||||
conn->send[SECONDARYSOCKET] = Curl_send_plain;
|
||||
|
||||
conn->bits.tcp_fastopen = data->set.tcp_fastopen;
|
||||
|
||||
/***********************************************************************
|
||||
* file: is a special case in that it doesn't need a network connection
|
||||
***********************************************************************/
|
||||
|
|
|
|||
|
|
@ -544,6 +544,8 @@ struct ConnectBits {
|
|||
connection */
|
||||
bool type_set; /* type= was used in the URL */
|
||||
bool multiplex; /* connection is multiplexed */
|
||||
|
||||
bool tcp_fastopen; /* use TCP Fast Open */
|
||||
};
|
||||
|
||||
struct hostname {
|
||||
|
|
@ -1650,6 +1652,7 @@ struct UserDefined {
|
|||
bool tcp_keepalive; /* use TCP keepalives */
|
||||
long tcp_keepidle; /* seconds in idle before sending keepalive probe */
|
||||
long tcp_keepintvl; /* seconds between TCP keepalive probes */
|
||||
bool tcp_fastopen; /* use TCP Fast Open */
|
||||
|
||||
size_t maxconnects; /* Max idle connections in the connection cache */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue