comparison src/event/ngx_event_quic.c @ 8209:36fe31ce9582 quic

Removed hardcoded CRYPTO and ACK frame sizes.
author Vladimir Homutov <vl@nginx.com>
date Thu, 12 Mar 2020 14:23:27 +0300
parents 4ae9ac69ab93
children 6bc18966b8c1
comparison
equal deleted inserted replaced
8208:4ae9ac69ab93 8209:36fe31ce9582
589 589
590 590
591 static size_t 591 static size_t
592 ngx_quic_create_ack(u_char *p, ngx_quic_ack_frame_t *ack) 592 ngx_quic_create_ack(u_char *p, ngx_quic_ack_frame_t *ack)
593 { 593 {
594 size_t len;
595
596 /* minimal ACK packet */
597
594 if (p == NULL) { 598 if (p == NULL) {
595 return 5; /* minimal ACK */ 599 len = ngx_quic_varint_len(NGX_QUIC_FT_ACK);
600 len += ngx_quic_varint_len(ack->pn);
601 len += ngx_quic_varint_len(0);
602 len += ngx_quic_varint_len(0);
603 len += ngx_quic_varint_len(ack->pn);
604
605 return len;
596 } 606 }
597 607
598 ngx_quic_build_int(&p, NGX_QUIC_FT_ACK); 608 ngx_quic_build_int(&p, NGX_QUIC_FT_ACK);
599 ngx_quic_build_int(&p, ack->pn); 609 ngx_quic_build_int(&p, ack->pn);
600 ngx_quic_build_int(&p, 0); 610 ngx_quic_build_int(&p, 0);
606 616
607 617
608 static size_t 618 static size_t
609 ngx_quic_create_crypto(u_char *p, ngx_quic_crypto_frame_t *crypto) 619 ngx_quic_create_crypto(u_char *p, ngx_quic_crypto_frame_t *crypto)
610 { 620 {
621 size_t len;
611 u_char *start; 622 u_char *start;
612 623
613 if (p == NULL) { 624 if (p == NULL) {
614 return 2 + ngx_quic_varint_len(crypto->len) + crypto->len; 625 len = ngx_quic_varint_len(NGX_QUIC_FT_CRYPTO);
626 len += ngx_quic_varint_len(crypto->offset);
627 len += ngx_quic_varint_len(crypto->len);
628 len += crypto->len;
629
630 return len;
615 } 631 }
616 632
617 start = p; 633 start = p;
618 634
619 ngx_quic_build_int(&p, NGX_QUIC_FT_CRYPTO); 635 ngx_quic_build_int(&p, NGX_QUIC_FT_CRYPTO);