MINOR: quic-be: add field for max_udp_payload_size into quic_conn
Add ->max_udp_payload_size new member to quic_conn struct. Initialize it from qc_new_conn(). Adapt qc_snd_buf() to use it.
This commit is contained in:
parent
5517b9c521
commit
d5a2e9b44e
@ -305,6 +305,7 @@ struct qcc_app_ops;
|
||||
/* Number of received bytes. */ \
|
||||
uint64_t rx; \
|
||||
} bytes; \
|
||||
size_t max_udp_payload; \
|
||||
/* First DCID used by client on its Initial packet. */ \
|
||||
struct quic_cid odcid; \
|
||||
/* DCID of our endpoint - not updated when a new DCID is used */ \
|
||||
|
@ -1238,6 +1238,10 @@ struct quic_conn *qc_new_conn(const struct quic_version *qv, int ipv4,
|
||||
qc->rx.buf = b_make(qc->rx.buf.area, QUIC_CONN_RX_BUFSZ, 0, 0);
|
||||
qc->rx.stream_max_uni = qc->rx.stream_max_bidi = 0;
|
||||
|
||||
qc->max_udp_payload = l ?
|
||||
l->bind_conf->quic_params.max_udp_payload_size :
|
||||
srv->quic_params.max_udp_payload_size;
|
||||
|
||||
qc->nb_pkt_for_cc = 1;
|
||||
qc->nb_pkt_since_cc = 0;
|
||||
|
||||
|
@ -815,10 +815,8 @@ int qc_snd_buf(struct quic_conn *qc, const struct buffer *buf, size_t sz,
|
||||
int qc_rcv_buf(struct quic_conn *qc)
|
||||
{
|
||||
struct sockaddr_storage saddr = {0}, daddr = {0};
|
||||
struct quic_transport_params *params;
|
||||
struct quic_dgram *new_dgram = NULL;
|
||||
struct buffer buf = BUF_NULL;
|
||||
size_t max_sz;
|
||||
unsigned char *dgram_buf;
|
||||
struct listener *l;
|
||||
ssize_t ret = 0;
|
||||
@ -829,22 +827,19 @@ int qc_rcv_buf(struct quic_conn *qc)
|
||||
TRACE_ENTER(QUIC_EV_CONN_RCV, qc);
|
||||
l = qc->li;
|
||||
|
||||
params = &l->bind_conf->quic_params;
|
||||
max_sz = params->max_udp_payload_size;
|
||||
|
||||
do {
|
||||
if (!b_alloc(&buf, DB_MUX_RX))
|
||||
break; /* TODO subscribe for memory again available. */
|
||||
|
||||
b_reset(&buf);
|
||||
BUG_ON(b_contig_space(&buf) < max_sz);
|
||||
BUG_ON(b_contig_space(&buf) < qc->max_udp_payload);
|
||||
|
||||
/* Allocate datagram on first loop or after requeuing. */
|
||||
if (!new_dgram && !(new_dgram = pool_alloc(pool_head_quic_dgram)))
|
||||
break; /* TODO subscribe for memory again available. */
|
||||
|
||||
dgram_buf = (unsigned char *)b_tail(&buf);
|
||||
ret = quic_recv(qc->fd, dgram_buf, max_sz,
|
||||
ret = quic_recv(qc->fd, dgram_buf, qc->max_udp_payload,
|
||||
(struct sockaddr *)&saddr, sizeof(saddr),
|
||||
(struct sockaddr *)&daddr, sizeof(daddr),
|
||||
get_net_port(&qc->local_addr));
|
||||
|
Loading…
x
Reference in New Issue
Block a user