summaryrefslogtreecommitdiffhomepage
path: root/src/event/quic/ngx_event_quic_connection.h
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2021-07-28 17:23:18 +0300
committerVladimir Homutov <vl@nginx.com>2021-07-28 17:23:18 +0300
commitcc3752ce8e7d2ff93df3da054cec2cccbbcfe260 (patch)
tree6156145a8e4d54dd00aba2b93430cb564b95e7ae /src/event/quic/ngx_event_quic_connection.h
parent5bb45c98a73044ce2b7f389c7764cc10cc869bed (diff)
downloadnginx-cc3752ce8e7d2ff93df3da054cec2cccbbcfe260.tar.gz
nginx-cc3752ce8e7d2ff93df3da054cec2cccbbcfe260.tar.bz2
QUIC: handle EAGAIN properly on UDP sockets.
Previously, the error was ignored leading to unnecessary retransmits. Now, unsent frames are returned into output queue, state is reset, and timer is started for the next send attempt.
Diffstat (limited to 'src/event/quic/ngx_event_quic_connection.h')
-rw-r--r--src/event/quic/ngx_event_quic_connection.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/event/quic/ngx_event_quic_connection.h b/src/event/quic/ngx_event_quic_connection.h
index 79c95a13e..8e6cea5b6 100644
--- a/src/event/quic/ngx_event_quic_connection.h
+++ b/src/event/quic/ngx_event_quic_connection.h
@@ -161,8 +161,9 @@ struct ngx_quic_send_ctx_s {
uint64_t largest_ack; /* received from peer */
uint64_t largest_pn; /* received from peer */
- ngx_queue_t frames;
- ngx_queue_t sent;
+ ngx_queue_t frames; /* generated frames */
+ ngx_queue_t sending; /* frames assigned to pkt */
+ ngx_queue_t sent; /* frames waiting ACK */
uint64_t pending_ack; /* non sent ack-eliciting */
uint64_t largest_range;