DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_STREAM_WEIGHT(3)





CURLOPT_STREAM_WEIGHT(3curl_easy_setopt optionCURLOPT_STREAM_WEIGHT(3)



NAME

     CURLOPT_STREAM_WEIGHT - set numerical stream weight


SYNOPSIS

     #include <curl/curl.h>

     CURLcode           curl_easy_setopt(CURL            *handle,
     CURLOPT_STREAM_WEIGHT, long weight);


DESCRIPTION

     Set the long weight to a number between 1 and 256.

     When using HTTP/2, this option sets  the  individual  weight
     for  this particular stream used by the easy handle. Setting
     and using weights only makes sense and is only  usable  when
     doing multiple streams over the same connections, which thus
     implies that you use CURLMOPT_PIPELINING(3).

     This option can be set during transfer and will  then  cause
     the updated weight info get sent to the server the next time
     a HTTP/2 frame is sent to the server.

     See  section  5.3  of  RFC  7540   for   protocol   details:
     https://httpwg.github.io/specs/rfc7540.html#StreamPriority

     Streams with the same parent should be  allocated  resources
     proportionally  based  on  their  weight. So if you have two
     streams going, stream A with weight 16  and  stream  B  with
     weight  32,  stream  B  will  get  two thirds (32/48) of the
     available bandwidth (assuming the server can  send  off  the
     data equally for both streams).


DEFAULT

     If nothing is set, the HTTP/2 protocol itself will  use  its
     own default which is 16.


PROTOCOLS

     HTTP/2


EXAMPLE

     CURL *curl = curl_easy_init();
     CURL *curl2 = curl_easy_init(); /* a second handle */
     if(curl) {
       curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/one");
       curl_easy_setopt(curl, CURLOPT_STREAM_WEIGHT, 10L);

       /* the second has twice the weight */
       curl_easy_setopt(curl2, CURLOPT_URL, "https://example.com/two");
       curl_easy_setopt(curl2, CURLOPT_STREAM_WEIGHT, 20L);

       /* then add both to a multi handle and transfer them! */
     }

libcurl 7.58.0      Last change: May 31, 2017                   1


CURLOPT_STREAM_WEIGHT(3curl_easy_setopt optionCURLOPT_STREAM_WEIGHT(3)



AVAILABILITY

     Added in 7.46.0


RETURN VALUE

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


SEE ALSO

     CURLOPT_STREAM_DEPENDS(3),      CURLOPT_STREAM_DEPENDS_E(3),
     CURLOPT_PIPEWAIT(3), CURLMOPT_PIPELINING(3),

libcurl 7.58.0      Last change: May 31, 2017                   2


Man(1) output converted with man2html