MINOR: quic: Iterate over all received datagrams

Make the listener datagram handler iterate over all received datagrams
diff --git a/src/xprt_quic.c b/src/xprt_quic.c
index a3a7bd0..caea3e6 100644
--- a/src/xprt_quic.c
+++ b/src/xprt_quic.c
@@ -5368,37 +5368,39 @@
 	struct quic_dgram *dgram;
 	int first_pkt = 1;
 
-	dgram = MT_LIST_POP(&dghdlr->dgrams, typeof(dgram), mt_list);
-	if (!dgram)
-		goto err;
+	while ((dgram = MT_LIST_POP(&dghdlr->dgrams, typeof(dgram), mt_list))) {
+		if (!dgram)
+			goto err;
 
-	pos = dgram->buf;
-	end = pos + dgram->len;
-	do {
-		int ret;
-		struct quic_rx_packet *pkt;
+		pos = dgram->buf;
+		end = pos + dgram->len;
+		do {
+			int ret;
+			struct quic_rx_packet *pkt;
 
-		pkt = pool_zalloc(pool_head_quic_rx_packet);
-		if (!pkt)
-			goto err;
+			pkt = pool_zalloc(pool_head_quic_rx_packet);
+			if (!pkt)
+				goto err;
 
-		quic_rx_packet_refinc(pkt);
-		ret = qc_lstnr_pkt_rcv(pos, end, pkt, first_pkt, dgram);
-		first_pkt = 0;
-		pos += pkt->len;
-		quic_rx_packet_refdec(pkt);
-		if (ret == -1)
-			/* 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);
+			quic_rx_packet_refinc(pkt);
+			ret = qc_lstnr_pkt_rcv(pos, end, pkt, first_pkt, dgram);
+			first_pkt = 0;
+			pos += pkt->len;
+			quic_rx_packet_refdec(pkt);
+			if (ret == -1)
+				/* 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);
 
-	/* Increasing the received bytes counter by the UDP datagram length
-	 * if this datagram could be associated to a connection.
-	 */
-	if (dgram->qc)
-		dgram->qc->rx.bytes += dgram->len;
+		/* Increasing the received bytes counter by the UDP datagram length
+		 * if this datagram could be associated to a connection.
+		 */
+		if (dgram->qc)
+			dgram->qc->rx.bytes += dgram->len;
+	}
 
 	return t;