  src/http/ngx_http_request.h             |    3 +
  src/http/ngx_http_request_body.c        |   29 +
  src/http/ngx_http_upstream.c            |   13 +
- src/http/v3/ngx_http_v3.c               | 2099 +++++++++++++++++++++++
- src/http/v3/ngx_http_v3.h               |   76 +
+ src/http/v3/ngx_http_v3.c               | 2123 +++++++++++++++++++++++
+ src/http/v3/ngx_http_v3.h               |   77 +
  src/http/v3/ngx_http_v3_filter_module.c |   68 +
  src/http/v3/ngx_http_v3_module.c        |  286 +++
  src/http/v3/ngx_http_v3_module.h        |   34 +
- 27 files changed, 3569 insertions(+), 11 deletions(-)
+ 27 files changed, 3594 insertions(+), 11 deletions(-)
  create mode 100644 auto/lib/quiche/conf
  create mode 100644 auto/lib/quiche/make
  create mode 100644 src/event/ngx_event_quic.c

+
+    ngx_http_v3_stream_t      *next;
+
+    ngx_uint_t                 in_closed:1;
+    ngx_uint_t                 out_closed:1;
+    ngx_uint_t                 skip_data:1;

+                   "http3 stream %uz to write %uz bytes, fin=%d",
+                   stream->id, buf_len, fin);
+
+    if (!stream->headers_sent) {
+        return NGX_AGAIN;
+    }
+
+    n = quiche_h3_send_body(h3c->h3, c->quic->conn, r->qstream->id,
+                            buf, buf_len, fin);
+
