comparison src/event/quic/ngx_event_quic.h @ 9016:55b38514729b quic

QUIC: fixed insertion at the end of buffer. Previously, last buffer was tracked by keeping a pointer to the previous chain link "next" field. When the previous buffer was split and then removed, the pointer was no longer valid. Writing at this pointer resulted in broken data chains. Now last buffer is tracked by keeping a direct pointer to it.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 17 Feb 2022 22:38:42 +0300
parents 8d11e2171697
children c2f5d79cde64
comparison
equal deleted inserted replaced
9015:a2fbae359828 9016:55b38514729b
51 typedef struct { 51 typedef struct {
52 uint64_t size; 52 uint64_t size;
53 uint64_t offset; 53 uint64_t offset;
54 uint64_t last_offset; 54 uint64_t last_offset;
55 ngx_chain_t *chain; 55 ngx_chain_t *chain;
56 ngx_chain_t **last_chain; 56 ngx_chain_t *last_chain;
57 } ngx_quic_buffer_t; 57 } ngx_quic_buffer_t;
58 58
59 59
60 typedef struct { 60 typedef struct {
61 ngx_ssl_t *ssl; 61 ngx_ssl_t *ssl;