curl-library
http2 stream dependency observation
Date: Mon, 18 Mar 2019 13:01:45 +0530
Hello Everyone,
I'm trying HTTP/2 stream dependency transfers using libcurl 7.64.0 +
nghttp2 1.36 with server-libmicrohttpd + nghttp2 - just echo no delay.
I've used the example http2-download.c in libcurl
Just added:
curl_easy_setopt(easy[1], CURLOPT_STREAM_DEPENDS_E, easy[2]);
curl_easy_setopt(easy[2], CURLOPT_STREAM_DEPENDS_E, easy[0]);
before:
curl_multi_setopt(multi_handle, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
I've also attempted these setting in setup function i.e before
curl_multi_add_handle
There 2 concerns here:
1. I'm not able to specify dependency on the stream/handle which is
currently being setup. So basically, for 2 streams, I cannot set stream 1
depends on stream 3, in pcap it show stream 1 depends on stream 0. Incase
of above example, it shows, 3 exclusive depends on 0 and 5 exclusive
depends on 1. Expectation is 3 exclusive depends on 5 and 5 exclusive
depends on 1, like:
1
5
3
2. For Above example, out of 10 transfers,
2 transfers showed order(in pcap):
HTTP2 768 HEADERS[5]: 200 OK, HEADERS[1]: 200 OK, HEADERS[3]: 200
OK, DATA[5], DATA[1], DATA[3]
6 transfers showed order:
HTTP2 765 HEADERS[1]: 200 OK, HEADERS[3]: 200 OK, HEADERS[5]: 200
OK, DATA[1], DATA[3], DATA[5]
2 showed:
1, 5, 3
Is this expected or is the way of setting the dependency incorrect?
Thanks,
~Kunal
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2019-03-18