Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_PIPEWAIT (3)

Name

CURLOPT_PIPEWAIT - wait for pipelining/multiplexing

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PIPEWAIT, long wait);

Description

CURLOPT_PIPEWAIT(3)        curl_easy_setopt options        CURLOPT_PIPEWAIT(3)



NAME
       CURLOPT_PIPEWAIT - wait for pipelining/multiplexing

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PIPEWAIT, long wait);

DESCRIPTION
       Set  wait  to  1L to tell libcurl to prefer to wait for a connection to
       confirm or deny that it can do pipelining or multiplexing  before  con-
       tinuing.

       When  about  to perform a new transfer that allows pipelining or multi-
       plexing, libcurl will check for  existing  connections  to  re-use  and
       pipeline  on. If no such connection exists it will immediately continue
       and create a fresh new connection to use.

       By setting this option to 1 - and having CURLMOPT_PIPELINING(3) enabled
       for  the  multi  handle this transfer is associated with - libcurl will
       instead wait for the connection to reveal if it is  possible  to  pipe-
       line/multiplex  on  before  it  continues. This enables libcurl to much
       better keep the number of connections to a minimum when using  pipelin-
       ing or multiplexing protocols.

       The  effect  thus becomes that with this option set, libcurl prefers to
       wait and re-use an existing connection for pipelining rather  than  the
       opposite: prefer to open a new connection rather than waiting.

       The  waiting  time  is as long as it takes for the connection to get up
       and for libcurl to get the necessary  response  back  that  informs  it
       about its protocol and support level.

DEFAULT
       0 (off)

PROTOCOLS
       HTTP(S)

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
         curl_easy_setopt(curl, CURLOPT_PIPEWAIT, 1L);

         /* now add this easy handle to the multi handle */
       }

AVAILABILITY
       Added in 7.43.0

RETURN VALUE
       Returns  CURLE_OK  if the option is supported, and CURLE_UNKNOWN_OPTION
       if not.


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


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

SEE ALSO
       CURLOPT_FORBID_REUSE(3),  CURLOPT_FRESH_CONNECT(3),   CURLMOPT_PIPELIN-
       ING(3), CURLMOPT_MAX_HOST_CONNECTIONS(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_PIPEWAIT(3)