diff options
author | Sergey Kandaurov <pluknet@nginx.com> | 2020-03-18 23:26:26 +0300 |
---|---|---|
committer | Sergey Kandaurov <pluknet@nginx.com> | 2020-03-18 23:26:26 +0300 |
commit | 31e794f0ad881248f72e87f32e6e594cb222e94d (patch) | |
tree | 51091ad2522ab0191006fa483a3d26905b1b5580 /src | |
parent | 33d8317dd5fa0b25f27a64a54e1ae099023fb1dd (diff) | |
download | nginx-31e794f0ad881248f72e87f32e6e594cb222e94d.tar.gz nginx-31e794f0ad881248f72e87f32e6e594cb222e94d.zip |
MAX_DATA frame parser/handler.
Diffstat (limited to 'src')
-rw-r--r-- | src/event/ngx_event_quic.c | 11 | ||||
-rw-r--r-- | src/event/ngx_event_quic_transport.c | 4 | ||||
-rw-r--r-- | src/event/ngx_event_quic_transport.h | 6 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c index c16c19ad1..a58a0aaba 100644 --- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -42,6 +42,7 @@ struct ngx_quic_connection_s { ngx_quic_frame_t *frames; ngx_quic_streams_t streams; + ngx_uint_t max_data; }; @@ -823,6 +824,16 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt) ack_this = 1; break; + case NGX_QUIC_FT_MAX_DATA: + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, + "MAX_DATA frame" + " { Maximum Data %ui }", + frame.u.max_data.max_data); + + c->quic->max_data = frame.u.max_data.max_data; + ack_this = 1; + break; + case NGX_QUIC_FT_RESET_STREAM: ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, "RESET STREAM frame" diff --git a/src/event/ngx_event_quic_transport.c b/src/event/ngx_event_quic_transport.c index cd971fb36..5527323a3 100644 --- a/src/event/ngx_event_quic_transport.c +++ b/src/event/ngx_event_quic_transport.c @@ -424,6 +424,10 @@ ngx_quic_parse_frame(u_char *start, u_char *end, ngx_quic_frame_t *frame) break; + case NGX_QUIC_FT_MAX_DATA: + frame->u.max_data.max_data = ngx_quic_parse_int(&p); + break; + case NGX_QUIC_FT_RESET_STREAM: frame->u.reset_stream.id = ngx_quic_parse_int(&p); frame->u.reset_stream.error_code = ngx_quic_parse_int(&p); diff --git a/src/event/ngx_event_quic_transport.h b/src/event/ngx_event_quic_transport.h index d09dbfedb..565161f93 100644 --- a/src/event/ngx_event_quic_transport.h +++ b/src/event/ngx_event_quic_transport.h @@ -110,6 +110,11 @@ typedef struct { typedef struct { + uint64_t max_data; +} ngx_quic_max_data_frame_t; + + +typedef struct { uint64_t error_code; uint64_t frame_type; ngx_str_t reason; @@ -146,6 +151,7 @@ struct ngx_quic_frame_s { ngx_quic_crypto_frame_t crypto; ngx_quic_new_conn_id_frame_t ncid; ngx_quic_stream_frame_t stream; + ngx_quic_max_data_frame_t max_data; ngx_quic_close_frame_t close; ngx_quic_reset_stream_frame_t reset_stream; ngx_quic_stop_sending_frame_t stop_sending; |