curl-library
RE: Inclusion of Connection-Specific Headers in h2c
Date: Wed, 19 Nov 2014 14:21:33 +0000
I've attached a HTTP/2 multi example that I believe exhibits the same issue reported.
This is a best effort and I've taken some artistic license in modifying the code to emulate the behaviour of our real code. There may be errors, introduced by me or in the real code; either way it will be helpful to get feedback on any mistakes.
The application takes a single URL and requests it multiple times. The first request is performed in isolation (in order to perform the h2c upgrade[1]) and subsequent requests are all added to the multiple handle at the same time.
This was built with curl (github master at c068284882) and nghttp2 (0.6.6). The application was tested between two VM's with the server being nghttpx (0.6.7-DEV) instance acting as reverse proxy to a local apache instance. I have also attached the packet trace.
Lucas
[1] If I add all easy handles at the same time, the request on stream 3 (first after upgrade) sometimes still contains the Upgrade header resulting in a server GOAWAY as reported by Sam and fixed by Tatsuhiro. Seperating out the requests leads to a more stable upgrade and continuation of requests on the same h2c connection.
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
- text/plain attachment: multi-http2.c
- application/x-gzip attachment: curl_multi-http2.pcapng.gz