diff options
author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2022-07-08 18:48:09 +0900 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2022-07-10 23:18:00 +0200 |
commit | 4989cd099e118271070c28df311bd7d9e757bf9d (patch) | |
tree | 0da2907049a3a1b1ecd94e9bf658dd3770151ee5 /lib/http.h | |
parent | d123f0e5908fc041beeb413bf6541b6942fd2bcd (diff) | |
download | curl-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.h | 5 |
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 */ |