diff --git a/lib/http2.c b/lib/http2.c index 658d6141eaf895..9410cf28299c6a 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -1062,6 +1062,15 @@ CURLcode Curl_http2_switched(struct connectdata *conn, return CURLE_HTTP2; } + /* Try to send some frames since we may read SETTINGS already. */ + rv = nghttp2_session_send(httpc->h2); + + if(rv != 0) { + failf(data, "nghttp2_session_send() failed: %s(%d)", + nghttp2_strerror(rv), rv); + return CURLE_HTTP2; + } + return CURLE_OK; } diff --git a/tests/data/test1801 b/tests/data/test1801 index a95e76a221d4b6..0aedfed51e12fb 100644 --- a/tests/data/test1801 +++ b/tests/data/test1801 @@ -23,7 +23,6 @@ lies! HTTP/1.1 101 Switching! - # listen to the upgrade request! @@ -62,9 +61,9 @@ Upgrade: %H2CVER HTTP2-Settings: AAMAAABkAAQAAP__ -# nothing is returned, because no HTTP/2 data nor headers was handled +# CURLE_HTTP2: Send failure: Broken pipe -56 +16