mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 14:51:27 +02:00
BUG/MINOR: quic: Missing TX packet initializations
The most important one is the ->flags member which leads to an erratic xprt behavior. For instance a non ack-eliciting packet could be seen as ack-eliciting leading the xprt to try to retransmit a packet which are not ack-eliciting. In this case, the xprt does nothing and remains indefinitively in a blocking state.
This commit is contained in:
parent
f27b66faee
commit
2899fe2460
@ -524,7 +524,7 @@ struct quic_tx_packet {
|
|||||||
struct eb64_node pn_node;
|
struct eb64_node pn_node;
|
||||||
/* The list of frames of this packet. */
|
/* The list of frames of this packet. */
|
||||||
struct list frms;
|
struct list frms;
|
||||||
/* The time this packet was sent (usec). */
|
/* The time this packet was sent (ms). */
|
||||||
unsigned int time_sent;
|
unsigned int time_sent;
|
||||||
/* Packet number spakce. */
|
/* Packet number spakce. */
|
||||||
struct quic_pktns *pktns;
|
struct quic_pktns *pktns;
|
||||||
|
@ -5299,8 +5299,10 @@ static inline void quic_tx_packet_init(struct quic_tx_packet *pkt, int type)
|
|||||||
pkt->in_flight_len = 0;
|
pkt->in_flight_len = 0;
|
||||||
pkt->pn_node.key = (uint64_t)-1;
|
pkt->pn_node.key = (uint64_t)-1;
|
||||||
LIST_INIT(&pkt->frms);
|
LIST_INIT(&pkt->frms);
|
||||||
|
pkt->time_sent = TICK_ETERNITY;
|
||||||
pkt->next = NULL;
|
pkt->next = NULL;
|
||||||
pkt->largest_acked_pn = -1;
|
pkt->largest_acked_pn = -1;
|
||||||
|
pkt->flags = 0;
|
||||||
pkt->refcnt = 0;
|
pkt->refcnt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user