Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_TCP_NODELAY (3)

Name

CURLOPT_TCP_NODELAY - the TCP_NODELAY option

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_NODELAY, long nodelay);

Description

CURLOPT_TCP_NODELAY(3)     curl_easy_setopt options     CURLOPT_TCP_NODELAY(3)



NAME
       CURLOPT_TCP_NODELAY - the TCP_NODELAY option

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_NODELAY, long nodelay);

DESCRIPTION
       Pass  a  long specifying whether the TCP_NODELAY option is to be set or
       cleared (1L = set, 0 = clear). The option is set by default. This  will
       have no effect after the connection has been established.

       Setting  this  option  to 1L will disable TCP's Nagle algorithm on this
       connection. The purpose of this algorithm is to  try  to  minimize  the
       number of small packets on the network (where "small packets" means TCP
       segments less than the Maximum Segment Size (MSS) for the network).

       Maximizing the amount of data sent per TCP segment is good  because  it
       amortizes  the  overhead of the send. However, in some cases small seg-
       ments may need to be sent without delay. This is  less  efficient  than
       sending larger amounts of data at a time, and can contribute to conges-
       tion on the network if overdone.

DEFAULT
       1

PROTOCOLS
       All

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
         /* leave Nagle enabled */
         curl_easy_setopt(curl, CURLOPT_TCP_NODELAY, 0);
         curl_easy_perform(curl);
       }

AVAILABILITY
       Always. The default was changed to 1 from 0 in 7.50.2.

RETURN VALUE
       Returns CURLE_OK


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_SOCKOPTFUNCTION(3), CURLOPT_TCP_KEEPALIVE(3),



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source      was      downloaded       from        https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 November 26, 2021        CURLOPT_TCP_NODELAY(3)