CURLOPT_TCP_FASTOPEN(3)

CURLOPT_TCP_FASTOPEN3

Tcp fast open

Usage

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_FASTOPEN, long enable);

Overview

Pass a long as parameter set to 1L to enable or 0 to disable.

TCP Fast Open (RFC 7413) is a mechanism that allows data to be carried in the SYN and SYN-ACK packets and consumed by the receiving end during the initial connection handshake, saving up to one full round-trip time (RTT).

Beware: the TLS session cache does not work when TCP Fast Open is enabled. TCP Fast Open is also known to be problematic on or across certain networks.

Default

0

Protocols

All

Examples

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    curl_easy_setopt(curl, CURLOPT_TCP_FASTOPEN, 1L);
    curl_easy_perform(curl);
  }
}

Return value

Returns CURLE_OK if fast open is supported by the operating system, otherwise returns CURLE_NOT_BUILT_IN.

Releases

66 releases since macOS 10.12; the text changed 12 times.

  1. 10.12–10.12.5
  2. 10.12.6–10.14.6
  3. 10.15–11.5
  4. 12.0.1–12.2
  5. 12.3–12.5
  6. 13.0
  7. 13.1
  8. 13.2
  9. 13.3
  10. 13.4
  11. 13.5–14.1
  12. 14.2–14.4
  13. 14.5–26.5

Availability

Added in 7.49.0. This option is currently only supported on Linux and macOS 10.11 or later.

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.