mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 09:21:50 -05:00
http2: Check session closure early in http2_recv
Ref: https://github.com/curl/curl/issues/659 Ref: https://github.com/curl/curl/pull/663
This commit is contained in:
parent
92c2a4c053
commit
4ec9eeb0c9
15
lib/http2.c
15
lib/http2.c
@ -1150,6 +1150,14 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
|
||||
|
||||
(void)sockindex; /* we always do HTTP2 on sockindex 0 */
|
||||
|
||||
if(!nghttp2_session_want_read(httpc->h2) &&
|
||||
!nghttp2_session_want_write(httpc->h2)) {
|
||||
DEBUGF(infof(data,
|
||||
"http2_recv: nothing to do in this session\n"));
|
||||
*err = CURLE_HTTP2;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Nullify here because we call nghttp2_session_send() and they
|
||||
might refer to the old buffer. */
|
||||
stream->upload_mem = NULL;
|
||||
@ -1231,13 +1239,6 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
|
||||
*err = CURLE_AGAIN;
|
||||
return -1;
|
||||
}
|
||||
else if(!nghttp2_session_want_read(httpc->h2) &&
|
||||
!nghttp2_session_want_write(httpc->h2)) {
|
||||
DEBUGF(infof(data,
|
||||
"http2_recv: nothing to do in this session\n"));
|
||||
*err = CURLE_HTTP2;
|
||||
return -1;
|
||||
}
|
||||
else {
|
||||
char *inbuf;
|
||||
/* remember where to store incoming data for this stream and how big the
|
||||
|
Loading…
x
Reference in New Issue
Block a user