curl/tests/data/test1801
Tatsuhiro Tsujikawa 21e82bd635 http2: Fix missing nghttp2_session_send call in Curl_http2_switched
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
2015-04-02 15:19:29 +02:00

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>