From: Frédéric Lécaille Date: Fri, 20 May 2022 18:53:20 +0000 (+0200) Subject: BUG/MINOR: quic: Missing stats counter decrementation X-Git-Tag: v2.6-dev11~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07968dcea35fd3a71f9f748e7a1f6c4c73fb7fe8;p=thirdparty%2Fhaproxy.git BUG/MINOR: quic: Missing stats counter decrementation When we receive a CONNECTION_CLOSE frame, we should decrement this counter if the handshake state was not successful and if we have not received a TLS alert from the TLS stack. --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 4a56e1eee5..1341dc91f5 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -2626,6 +2626,13 @@ static int qc_parse_pkt_frms(struct quic_rx_packet *pkt, struct ssl_sock_ctx *ct case QUIC_FT_CONNECTION_CLOSE: case QUIC_FT_CONNECTION_CLOSE_APP: if (!(qc->flags & QUIC_FL_CONN_DRAINING)) { + /* If the connection did not reached the handshake complete state, + * the counter was not decremented. Note that if + * a TLS alert was received from the TLS stack, this counter + * has already been decremented. + */ + if (qc->state < QUIC_HS_ST_COMPLETE && !(qc->flags & QUIC_FL_CONN_TLS_ALERT)) + HA_ATOMIC_DEC(&qc->prx_counters->conn_opening); TRACE_PROTO("Entering draining state", QUIC_EV_CONN_PRSHPKT, qc); /* RFC 9000 10.2. Immediate Close: * The closing and draining connection states exist to ensure