curl: add yet another patch for the same issue
This commit is contained in:
parent
74f6aaae4a
commit
c6dcda71cb
1 changed files with 39 additions and 0 deletions
|
@ -60,3 +60,42 @@ index 46fc746457726..1ef5d3949218f 100644
|
|||
nread = retlen;
|
||||
DEBUGF(LOG_CF(data, cf, "[h2sid=%u] cf_h2_recv -> %zd",
|
||||
stream->stream_id, nread));
|
||||
|
||||
|
||||
From 87ed650d04dc1a6f7944a5d952f7d5b0934a19ac Mon Sep 17 00:00:00 2001
|
||||
From: Harry Sintonen <sintonen@iki.fi>
|
||||
Date: Thu, 16 Feb 2023 06:26:26 +0200
|
||||
Subject: [PATCH] http2: set drain on stream end
|
||||
|
||||
Ensure that on_frame_recv() stream end will trigger a read if there is
|
||||
pending data. Without this it could happen that the pending data is
|
||||
never consumed.
|
||||
|
||||
This combined with https://github.com/curl/curl/pull/10529 should fix
|
||||
https://github.com/curl/curl/issues/10525
|
||||
|
||||
Ref: https://github.com/curl/curl/issues/10525
|
||||
Closes #10530
|
||||
---
|
||||
lib/http2.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/lib/http2.c b/lib/http2.c
|
||||
index 1ef5d3949218f..bdb5e7378e9cb 100644
|
||||
--- a/lib/http2.c
|
||||
+++ b/lib/http2.c
|
||||
@@ -868,6 +868,14 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
|
||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||
}
|
||||
}
|
||||
+ if(frame->hd.flags & NGHTTP2_FLAG_END_STREAM) {
|
||||
+ /* Stream has ended. If there is pending data, ensure that read
|
||||
+ will occur to consume it. */
|
||||
+ if(!data->state.drain && stream->memlen) {
|
||||
+ drain_this(cf, data_s);
|
||||
+ Curl_expire(data, 0, EXPIRE_RUN_NOW);
|
||||
+ }
|
||||
+ }
|
||||
break;
|
||||
case NGHTTP2_HEADERS:
|
||||
DEBUGF(LOG_CF(data_s, cf, "[h2sid=%u] recv frame HEADERS", stream_id));
|
||||
|
|
Loading…
Reference in a new issue