Mercurial > hg > nginx-quic
view src/event/quic/ngx_event_quic_output.h @ 8847:6c1dfd072859 quic
QUIC: switch stream to DATA_RECVD state.
The switch happens when received byte counter reaches stream final size.
Previously, this state was skipped. The stream went from SIZE_KNOWN to
DATA_READ when all bytes were read by application.
The change prevents STOP_SENDING frames from being sent when all data is
received from client, but not yet fully read by application.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 03 Feb 2022 18:11:59 +0300 |
parents | 501f28679d56 |
children |
line wrap: on
line source
/* * Copyright (C) Nginx, Inc. */ #ifndef _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_ #define _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> size_t ngx_quic_max_udp_payload(ngx_connection_t *c); ngx_int_t ngx_quic_output(ngx_connection_t *c); ngx_int_t ngx_quic_negotiate_version(ngx_connection_t *c, ngx_quic_header_t *inpkt); ngx_int_t ngx_quic_send_stateless_reset(ngx_connection_t *c, ngx_quic_conf_t *conf, ngx_quic_header_t *pkt); ngx_int_t ngx_quic_send_cc(ngx_connection_t *c); ngx_int_t ngx_quic_send_early_cc(ngx_connection_t *c, ngx_quic_header_t *inpkt, ngx_uint_t err, const char *reason); ngx_int_t ngx_quic_send_retry(ngx_connection_t *c, ngx_quic_conf_t *conf, ngx_quic_header_t *pkt); ngx_int_t ngx_quic_send_new_token(ngx_connection_t *c, ngx_quic_path_t *path); ngx_int_t ngx_quic_send_ack(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx); ngx_int_t ngx_quic_send_ack_range(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx, uint64_t smallest, uint64_t largest); ngx_int_t ngx_quic_frame_sendto(ngx_connection_t *c, ngx_quic_frame_t *frame, size_t min, ngx_quic_path_t *path); #endif /* _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_ */