aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2020-03-23 19:42:09 +0300
committerRoman Arutyunyan <arut@nginx.com>2020-03-23 19:42:09 +0300
commit9975b088bbd24af0f0543bb921a1313a285da319 (patch)
treebf75af173589318a8683b94978746b8034b2037c
parentede2656c6016d240b804bbcb28b6ecd391cca5de (diff)
downloadnginx-9975b088bbd24af0f0543bb921a1313a285da319.tar.gz
nginx-9975b088bbd24af0f0543bb921a1313a285da319.zip
Allow ngx_queue_frame() to insert frame in the front.
Previously a frame could only be inserted after the first element of the list.
-rw-r--r--src/event/ngx_event_quic.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
index acc6e671a..582d3f8ce 100644
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -1142,21 +1142,16 @@ ngx_quic_handle_stream_data_blocked_frame(ngx_connection_t *c,
static void
ngx_quic_queue_frame(ngx_quic_connection_t *qc, ngx_quic_frame_t *frame)
{
- ngx_quic_frame_t *f;
+ ngx_quic_frame_t **f;
- if (qc->frames == NULL) {
- qc->frames = frame;
- return;
- }
-
- for (f = qc->frames; f->next; f = f->next) {
- if (f->next->level > frame->level) {
+ for (f = &qc->frames; *f; f = &(*f)->next) {
+ if ((*f)->level > frame->level) {
break;
}
}
- frame->next = f->next;
- f->next = frame;
+ frame->next = *f;
+ *f = frame;
}