Mercurial > hg > nginx-quic
comparison src/event/ngx_event_quic.c @ 7927:391d06a51bc0 quic
Limited max udp payload size for outgoing packets.
This allows to avoid problems with packet fragmentation in real networks.
This is a temporary workaround.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Wed, 10 Jun 2020 21:37:08 +0300 |
parents | 70335ec6e5d4 |
children | 7672ec1e6227 |
comparison
equal
deleted
inserted
replaced
7926:70335ec6e5d4 | 7927:391d06a51bc0 |
---|---|
428 ngx_log_error(NGX_LOG_INFO, c->log, 0, | 428 ngx_log_error(NGX_LOG_INFO, c->log, 0, |
429 "quic maximum packet size is invalid"); | 429 "quic maximum packet size is invalid"); |
430 return 0; | 430 return 0; |
431 } | 431 } |
432 | 432 |
433 if (qc->ctp.max_udp_payload_size > NGX_QUIC_MAX_UDP_PAYLOAD_OUT) { | |
434 qc->ctp.max_udp_payload_size = NGX_QUIC_MAX_UDP_PAYLOAD_OUT; | |
435 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, | |
436 "quic client maximum packet size truncated"); | |
437 } | |
438 | |
433 #if (NGX_QUIC_DRAFT_VERSION >= 28) | 439 #if (NGX_QUIC_DRAFT_VERSION >= 28) |
434 if (qc->scid.len != qc->ctp.initial_scid.len | 440 if (qc->scid.len != qc->ctp.initial_scid.len |
435 || ngx_memcmp(qc->scid.data, qc->ctp.initial_scid.data, | 441 || ngx_memcmp(qc->scid.data, qc->ctp.initial_scid.data, |
436 qc->scid.len) != 0) | 442 qc->scid.len) != 0) |
437 { | 443 { |
638 qc->ssl = ssl; | 644 qc->ssl = ssl; |
639 qc->tp = *tp; | 645 qc->tp = *tp; |
640 qc->streams.handler = handler; | 646 qc->streams.handler = handler; |
641 | 647 |
642 ctp = &qc->ctp; | 648 ctp = &qc->ctp; |
643 ctp->max_udp_payload_size = NGX_QUIC_MAX_UDP_PAYLOAD_SIZE; | 649 ctp->max_udp_payload_size = NGX_QUIC_MAX_UDP_PAYLOAD_OUT; |
644 ctp->ack_delay_exponent = NGX_QUIC_DEFAULT_ACK_DELAY_EXPONENT; | 650 ctp->ack_delay_exponent = NGX_QUIC_DEFAULT_ACK_DELAY_EXPONENT; |
645 ctp->max_ack_delay = NGX_QUIC_DEFAULT_MAX_ACK_DELAY; | 651 ctp->max_ack_delay = NGX_QUIC_DEFAULT_MAX_ACK_DELAY; |
646 | 652 |
647 qc->streams.recv_max_data = qc->tp.initial_max_data; | 653 qc->streams.recv_max_data = qc->tp.initial_max_data; |
648 | 654 |