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

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_STREAM_WEIGHT(3)   curl_easy_setopt options   CURLOPT_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 par-
       ticular	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_PIPELIN-
       ING(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 proportion-
       ally 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! */
       }

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),	  CUR-
       LOPT_PIPEWAIT(3), CURLMOPT_PIPELINING(3),

libcurl	7.54.1			 May 31, 2017	      CURLOPT_STREAM_WEIGHT(3)

NAME | SYNOPSIS | DESCRIPTION | DEFAULT | PROTOCOLS | EXAMPLE | AVAILABILITY | RETURN VALUE | SEE ALSO

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

home | help