summaryrefslogtreecommitdiff
path: root/lib/http.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2022-07-08 18:48:09 +0900
committerDaniel Stenberg <daniel@haxx.se>2022-07-10 23:18:00 +0200
commit4989cd099e118271070c28df311bd7d9e757bf9d (patch)
tree0da2907049a3a1b1ecd94e9bf658dd3770151ee5 /lib/http.h
parentd123f0e5908fc041beeb413bf6541b6942fd2bcd (diff)
downloadcurl-4989cd099e118271070c28df311bd7d9e757bf9d.tar.gz
ngtcp2: fix stall or busy loop on STOP_SENDING with upload data
Fixes #9122 Closes #9123
Diffstat (limited to 'lib/http.h')
-rw-r--r--lib/http.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/http.h b/lib/http.h
index 9eff6b1ff..2ac287eca 100644
--- a/lib/http.h
+++ b/lib/http.h
@@ -227,13 +227,11 @@ struct HTTP {
/*********** for HTTP/2 we store stream-local data here *************/
int32_t stream_id; /* stream we are interested in */
- bool bodystarted;
/* We store non-final and final response headers here, per-stream */
struct dynbuf header_recvbuf;
size_t nread_header_recvbuf; /* number of bytes in header_recvbuf fed into
upper layer */
struct dynbuf trailer_recvbuf;
- int status_code; /* HTTP status code */
const uint8_t *pausedata; /* pointer to data received in on_data_chunk */
size_t pauselen; /* the number of bytes left in data */
bool close_handled; /* TRUE if stream closure is handled by libcurl */
@@ -244,6 +242,8 @@ struct HTTP {
uint32_t error; /* HTTP/2 stream error code */
#endif
#if defined(USE_NGHTTP2) || defined(USE_NGHTTP3)
+ bool bodystarted;
+ int status_code; /* HTTP status code */
bool closed; /* TRUE on HTTP2 stream close */
char *mem; /* points to a buffer in memory to store received data */
size_t len; /* size of the buffer 'mem' points to */
@@ -260,6 +260,7 @@ struct HTTP {
#ifndef USE_MSH3
/*********** for HTTP/3 we store stream-local data here *************/
int64_t stream3_id; /* stream we are interested in */
+ uint64_t error3; /* HTTP/3 stream error code */
bool firstheader; /* FALSE until headers arrive */
bool firstbody; /* FALSE until body arrives */
bool h3req; /* FALSE until request is issued */