Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_STREAM_WEIGHT(3)    Library Functions Manual	CURLOPT_STREAM_WEIGHT(3)

NAME
     CURLOPT_STREAM_WEIGHT - 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 particu-
     lar  stream  used	by the easy handle. Setting and using weights only makes
     sense and is only usable when doing multiple streams over the same  connec-
     tions, which thus implies that you use CURLMOPT_PIPELINING(3).

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

     See section 5.3 of RFC 7540 for protocol details.

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

DEFAULT
     16

PROTOCOLS
     This functionality affects http only

EXAMPLE
     int main(void)
     {
       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 */
       }
     }

AVAILABILITY
     Added in curl 7.46.0

RETURN VALUE
     curl_easy_setopt(3) returns a CURLcode indicating success or error.

     CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
     libcurl-errors(3).

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

libcurl 			   2026-06-11		CURLOPT_STREAM_WEIGHT(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_STREAM_WEIGHT&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help