Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
h2c Interop issue - nghttpx & curl #103
We are experiencing an intermittent interop issue between nghttpx (hosted at http://nghttp2.org) and curl 7.39.0 built with nghttp2 0.6.6 when performing a HTTP/2 upgrade to h2c.
The upgrade works always as expected but 1-in-3 times the response is not correctly processed by curl. A packet trace indicates that curl receives a SETTINGS frame after it was expected - the server sends HEADERS and DATA before the SETTINGS. The client then sends a GOAWAY with PROTOCOL_ERROR (SETTINGS expected), curl does not report the returned file(s) and exits
It seems like nghttpx is not following the expected sequence as defined in section 3.5 but I would like to confirm this.
NOTE: we are using a SOCKS proxy to ensure that no intermediary is affecting the upgrade header.
I found the bug in Curl code to handle HTTP/2.
To clarify, are you saying the SETTINGS frame is appended to the response HTTP/1.1 101 Switching Protocols?
Looking at a packet trace, I can see the this happening in 0x80
Thank you for the patch, tomorrow, we will test and confirm if it fixes the issue we have seen.