mirror of https://github.com/moparisthebest/curl
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 */
|
(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
|
/* Nullify here because we call nghttp2_session_send() and they
|
||||||
might refer to the old buffer. */
|
might refer to the old buffer. */
|
||||||
stream->upload_mem = NULL;
|
stream->upload_mem = NULL;
|
||||||
|
@ -1231,13 +1239,6 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
|
||||||
*err = CURLE_AGAIN;
|
*err = CURLE_AGAIN;
|
||||||
return -1;
|
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 {
|
else {
|
||||||
char *inbuf;
|
char *inbuf;
|
||||||
/* remember where to store incoming data for this stream and how big the
|
/* remember where to store incoming data for this stream and how big the
|
||||||
|
|
Loading…
Reference in New Issue