http2: handle GOAWAY properly

When receiving REFUSED_STREAM, mark the connection for close and retry
streams accordingly on another/fresh connection.

Reported-by: Terry Wu
Fixes #2416
Fixes #1618
Closes #2510
This commit is contained in:
Daniel Stenberg 2018-04-19 20:03:30 +02:00
parent 7645c6bd5e
commit d122df5972
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
4 changed files with 31 additions and 9 deletions

View file

@ -546,7 +546,9 @@ static CURLcode multi_done(struct connectdata **connp,
if(conn->send_pipe.size || conn->recv_pipe.size) {
/* Stop if pipeline is not empty . */
data->easy_conn = NULL;
DEBUGF(infof(data, "Connection still in use, no more multi_done now!\n"));
DEBUGF(infof(data, "Connection still in use %d/%d, "
"no more multi_done now!\n",
conn->send_pipe.size, conn->recv_pipe.size));
return CURLE_OK;
}