summaryrefslogtreecommitdiffhomepage
path: root/src/event/quic/ngx_event_quic.c
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2021-11-17 23:07:51 +0300
committerRoman Arutyunyan <arut@nginx.com>2021-11-17 23:07:51 +0300
commitd4add9784568913fea143004fa2d0af364c03562 (patch)
tree87a93efbe83285a63450f039ce09cb8df5894b66 /src/event/quic/ngx_event_quic.c
parent4bb4792907464c98e3fea1bd784caf5c9d456334 (diff)
downloadnginx-d4add9784568913fea143004fa2d0af364c03562.tar.gz
nginx-d4add9784568913fea143004fa2d0af364c03562.tar.bz2
QUIC: handle DATA_BLOCKED frame from client.
Previously the frame was not handled and connection was closed with an error. Now, after receiving this frame, global flow control is updated and new flow control credit is sent to client.
Diffstat (limited to 'src/event/quic/ngx_event_quic.c')
-rw-r--r--src/event/quic/ngx_event_quic.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c
index 38138a6c1..af6f3e69e 100644
--- a/src/event/quic/ngx_event_quic.c
+++ b/src/event/quic/ngx_event_quic.c
@@ -1252,6 +1252,17 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
break;
+ case NGX_QUIC_FT_DATA_BLOCKED:
+
+ if (ngx_quic_handle_data_blocked_frame(c, pkt,
+ &frame.u.data_blocked)
+ != NGX_OK)
+ {
+ return NGX_ERROR;
+ }
+
+ break;
+
case NGX_QUIC_FT_STREAM_DATA_BLOCKED:
if (ngx_quic_handle_stream_data_blocked_frame(c, pkt,