MINOR: quic: Iterate over all received datagrams

Make the listener datagram handler iterate over all received datagrams
This commit is contained in:
Frédéric Lécaille 2022-01-28 15:38:52 +01:00 committed by Amaury Denoyelle
parent 1712b1df59
commit df1c7c78c1

View File

@ -5368,7 +5368,7 @@ struct task *quic_lstnr_dghdlr(struct task *t, void *ctx, unsigned int state)
struct quic_dgram *dgram;
int first_pkt = 1;
dgram = MT_LIST_POP(&dghdlr->dgrams, typeof(dgram), mt_list);
while ((dgram = MT_LIST_POP(&dghdlr->dgrams, typeof(dgram), mt_list))) {
if (!dgram)
goto err;
@ -5391,6 +5391,7 @@ struct task *quic_lstnr_dghdlr(struct task *t, void *ctx, unsigned int state)
/* If the packet length could not be found, we cannot continue. */
break;
} while (pos < end);
/* Mark this datagram as consumed */
HA_ATOMIC_STORE(&dgram->buf, NULL);
@ -5399,6 +5400,7 @@ struct task *quic_lstnr_dghdlr(struct task *t, void *ctx, unsigned int state)
*/
if (dgram->qc)
dgram->qc->rx.bytes += dgram->len;
}
return t;