Mercurial > hg > nginx-quic
diff src/event/ngx_event_quic.c @ 7847:262396242352 quic
Reworked macros for parsing/assembling packet types.
Previously, macros checking a packet type with the long header also checked
whether this is a long header. Now it requires a separate preceding check.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Thu, 30 Apr 2020 12:38:38 +0300 |
parents | bddf704d62c1 |
children | 9d9531431c8c |
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -2655,16 +2655,19 @@ ngx_quic_send_frames(ngx_connection_t *c pkt.secret = &keys->server; + pkt.flags = NGX_QUIC_PKT_FIXED_BIT; + if (start->level == ssl_encryption_initial) { - pkt.flags = NGX_QUIC_PKT_INITIAL; + pkt.flags |= NGX_QUIC_PKT_LONG | NGX_QUIC_PKT_INITIAL; pkt.token = initial_token; } else if (start->level == ssl_encryption_handshake) { - pkt.flags = NGX_QUIC_PKT_HANDSHAKE; + pkt.flags |= NGX_QUIC_PKT_LONG | NGX_QUIC_PKT_HANDSHAKE; } else { - // TODO: macro, set FIXED bit - pkt.flags = 0x40 | (c->quic->key_phase ? NGX_QUIC_PKT_KPHASE : 0); + if (c->quic->key_phase) { + pkt.flags |= NGX_QUIC_PKT_KPHASE; + } } ngx_quic_set_packet_number(&pkt, ctx);