mirror of
https://github.com/curl/curl.git
synced 2024-12-15 06:40:09 +08:00
21e82bd635
Previously in Curl_http2_switched, we called nghttp2_session_mem_recv to parse incoming data which were already received while curl was handling upgrade. But we didn't call nghttp2_session_send, and it led to make curl not send any response to the received frames. Most likely, we received SETTINGS from server at this point, so we missed opportunity to send SETTINGS + ACK. This commit adds missing nghttp2_session_send call in Curl_http2_switched to fix this issue. Bug: https://github.com/bagder/curl/issues/192 Reported-by: Stefan Eissing
70 lines
923 B
Plaintext
70 lines
923 B
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
http2
|
|
</keywords>
|
|
</info>
|
|
|
|
# Server-side
|
|
<reply>
|
|
<data>
|
|
HTTP/1.1 101 Switching!
|
|
|
|
HTTP/1.1 200 OK
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
|
Content-Length: 6
|
|
Content-Type: text/html
|
|
|
|
lies!
|
|
</data>
|
|
|
|
<datacheck>
|
|
HTTP/1.1 101 Switching!
|
|
</datacheck>
|
|
|
|
# listen to the upgrade request!
|
|
<servercmd>
|
|
upgrade
|
|
</servercmd>
|
|
</reply>
|
|
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
http
|
|
</server>
|
|
<features>
|
|
http2
|
|
</features>
|
|
<name>
|
|
HTTP/2 upgrade with lying server
|
|
</name>
|
|
<command>
|
|
http://%HOSTIP:%HTTPPORT/1801 --http2
|
|
</command>
|
|
|
|
</client>
|
|
|
|
<verify>
|
|
<strip>
|
|
^User-Agent:.*
|
|
</strip>
|
|
<protocol>
|
|
GET /1801 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Connection: Upgrade, HTTP2-Settings
|
|
Upgrade: %H2CVER
|
|
HTTP2-Settings: AAMAAABkAAQAAP__
|
|
|
|
</protocol>
|
|
# CURLE_HTTP2: Send failure: Broken pipe
|
|
<errorcode>
|
|
16
|
|
</errorcode>
|
|
</verify>
|
|
</testcase>
|