]> granicus.if.org Git - curl/commit
http2: Stop drain from being permanently set on
authorJosie Huddleston <Josie.Huddleston@metaswitch.com>
Wed, 29 May 2019 14:21:26 +0000 (15:21 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 29 May 2019 22:26:20 +0000 (00:26 +0200)
commit1c0e9527bad814f81dfbaf54eabdcb9e6fa95586
tree4d497b88ebed99d9d1825105167e7f5f6f0c458e
parentbdf6d8af3e7be26ed9b49f6bfae986ec44964429
http2: Stop drain from being permanently set on

Various functions called within Curl_http2_done() can have the
side-effect of setting the Easy connection into drain mode (by calling
drain_this()).  However, the last time we unset this for a transfer (by
calling drained_transfer()) is at the beginning of Curl_http2_done().
If the Curl_easy is reused for another transfer, it is then stuck in
drain mode permanently, which in practice makes it unable to write any
data in the new transfer.

This fix moves the last call to drained_transfer() to later in
Curl_http2_done(), after the functions that could potentially call for a
drain.

Fixes #3966
Closes #3967
Reported-by: Josie-H
lib/http2.c