1--- 2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 3SPDX-License-Identifier: curl 4Title: CURLOPT_STREAM_DEPENDS_E 5Section: 3 6Source: libcurl 7See-also: 8 - CURLMOPT_PIPELINING (3) 9 - CURLOPT_HTTP_VERSION (3) 10 - CURLOPT_STREAM_DEPENDS (3) 11 - CURLOPT_STREAM_WEIGHT (3) 12Protocol: 13 - HTTP 14Added-in: 7.46.0 15--- 16 17# NAME 18 19CURLOPT_STREAM_DEPENDS_E - stream this transfer depends on exclusively 20 21# SYNOPSIS 22 23~~~c 24#include <curl/curl.h> 25 26CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_DEPENDS_E, 27 CURL *dephandle); 28~~~ 29 30# DESCRIPTION 31 32Pass a CURL pointer in *dephandle* to identify the stream within the same 33connection that this stream is depending upon exclusively. That means it 34depends on it and sets the Exclusive bit. 35 36The spec says "Including a dependency expresses a preference to allocate 37resources to the identified stream rather than to the dependent stream." 38 39Setting a dependency with the exclusive flag for a reprioritized stream causes 40all the dependencies of the new parent stream to become dependent on the 41reprioritized stream. 42 43This option can be set during transfer. 44 45*dephandle* must not be the same as *handle*, that makes this function return 46an error. It must be another easy handle, and it also needs to be a handle of 47a transfer that is about to be sent over the same HTTP/2 connection for this 48option to have an actual effect. 49 50# DEFAULT 51 52NULL 53 54# %PROTOCOLS% 55 56# EXAMPLE 57 58~~~c 59int main(void) 60{ 61 CURL *curl = curl_easy_init(); 62 CURL *curl2 = curl_easy_init(); /* a second handle */ 63 if(curl) { 64 curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/one"); 65 66 /* the second depends on the first */ 67 curl_easy_setopt(curl2, CURLOPT_URL, "https://example.com/two"); 68 curl_easy_setopt(curl2, CURLOPT_STREAM_DEPENDS_E, curl); 69 70 /* then add both to a multi handle and transfer them */ 71 } 72} 73~~~ 74 75# %AVAILABILITY% 76 77# RETURN VALUE 78 79Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. 80