# HG changeset patch # User Sergey Kandaurov # Date 1599560859 -10800 # Node ID d3489d225f8f285ffa9c5571186178772b26dab6 # Parent dcbb58e7ed111d53d7b8ee370761188f30f8be07 QUIC: update packet length for short packets too. During long packet header parsing, pkt->len is updated with the Length field value that is used to find next coalesced packets in a datagram. For short packets it still contained the whole QUIC packet size. This change uniforms packet length handling to always contain the total length of the packet number and protected packet payload in pkt->len. diff -r dcbb58e7ed11 -r d3489d225f8f src/event/ngx_event_quic_protection.c --- a/src/event/ngx_event_quic_protection.c Mon Sep 07 20:55:36 2020 +0300 +++ b/src/event/ngx_event_quic_protection.c Tue Sep 08 13:27:39 2020 +0300 @@ -1058,13 +1058,12 @@ /* packet protection */ in.data = p; + in.len = pkt->len - pnl; if (ngx_quic_long_pkt(pkt->flags)) { - in.len = pkt->len - pnl; badflags = clearflags & NGX_QUIC_PKT_LONG_RESERVED_BIT; } else { - in.len = pkt->data + pkt->len - p; badflags = clearflags & NGX_QUIC_PKT_SHORT_RESERVED_BIT; } diff -r dcbb58e7ed11 -r d3489d225f8f src/event/ngx_event_quic_transport.c --- a/src/event/ngx_event_quic_transport.c Mon Sep 07 20:55:36 2020 +0300 +++ b/src/event/ngx_event_quic_transport.c Tue Sep 08 13:27:39 2020 +0300 @@ -511,6 +511,7 @@ } pkt->raw->pos = p; + pkt->len = end - p; return NGX_OK; }