DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLMOPT_PIPELINING(3)





CURLMOPT_PIPELINING(3curl_multi_setopt optionCURLMOPT_PIPELINING(3)



NAME

     CURLMOPT_PIPELINING - enable HTTP pipelining and  multiplex-
     ing


SYNOPSIS

     #include <curl/curl.h>

     CURLMcode          curl_multi_setopt(CURLM          *handle,
     CURLMOPT_PIPELINING, long bitmask);


DESCRIPTION

     Pass in the bitmask parameter to instruct libcurl to  enable
     HTTP  pipelining  and/or  HTTP/2 multiplexing for this multi
     handle.

     When enabled, libcurl will attempt  to  use  those  protocol
     features when doing parallel requests to the same hosts.

     For pipelining, this means that if you add a second  request
     that  can  use  an  already  existing connection, the second
     request will be "piped" on the same connection  rather  than
     being executed in parallel.

     For multiplexing, this means  that  follow-up  requests  can
     re-use  an existing connection and send the new request mul-
     tiplexed over that at the same time as other  transfers  are
     already using that single connection.

     There are several other related options that are interesting
     to  tweak  and  adjust  to  alter  how  libcurl  spreads out
     requests on different connections or not etc.

     Before 7.43.0, this option was set to 1 and 0 to enable  and
     disable HTTP/1.1 pipelining.

     Starting in 7.43.0, bitmask's second bit also has a meaning,
     and  you  can  ask  for pipelining and multiplexing indepen-
     dently of each other by toggling the correct bits.

     CURLPIPE_NOTHING
     Default, which means doing no attempts at pipelining or mul-
     tiplexing.

     CURLPIPE_HTTP1
     If this bit is set, libcurl will try  to  pipeline  HTTP/1.1
     requests  on connections that are already established and in
     use to hosts.

     CURLPIPE_MULTIPLEX
     If this bit is set, libcurl will try to  multiplex  the  new
     transfer  over  an  existing  connection  if  possible. This
     requires HTTP/2.

libcurl 7.58.0      Last change: May 27, 2017                   1


CURLMOPT_PIPELINING(3curl_multi_setopt optionCURLMOPT_PIPELINING(3)



DEFAULT

     0 (both pipeline and multiplexing are off)


PROTOCOLS

     HTTP(S)


EXAMPLE

     CURLM *m = curl_multi_init();
     /* try HTTP/1 pipelining and HTTP/2 multiplexing */
     curl_multi_setopt(m, CURLMOPT_PIPELINING, CURLPIPE_HTTP1 |
                                               CURLPIPE_MULTIPLEX);


AVAILABILITY

     Added in 7.16.0. Multiplex support bit added in 7.43.0.


RETURN VALUE

     Returns  CURLM_OK  if   the   option   is   supported,   and
     CURLM_UNKNOWN_OPTION if not.


SEE ALSO

     CURLMOPT_MAX_PIPELINE_LENGTH(3),
     CURLMOPT_PIPELINING_SITE_BL(3),
     CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE(3),
     CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE(3),
     CURLMOPT_MAX_HOST_CONNECTIONS(3),   CURLMOPT_MAXCONNECTS(3),
     CURLMOPT_MAX_HOST_CONNECTIONS(3),

libcurl 7.58.0      Last change: May 27, 2017                   2


Man(1) output converted with man2html