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