Skip to content

Commit efbb67f

Browse files
committed
MINOR: quic: simplify qc_parse_pkt_frms() return path
Change qc_parse_pkt_frms() return path for normal and error cases. Most notably, it allows to remove local variable ret as now return value is hardcoded on normal and err label. This also allows to define a different trace for error leaving code.
1 parent b300db5 commit efbb67f

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

src/quic_rx.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
770770
{
771771
struct quic_frame frm;
772772
const unsigned char *pos, *end;
773-
int fast_retrans = 0, ret = 0;
773+
int fast_retrans = 0;
774774

775775
TRACE_ENTER(QUIC_EV_CONN_PRSHPKT, qc);
776776
/* Skip the AAD */
@@ -788,13 +788,13 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
788788
* a single QUIC packet and cannot span multiple packets.
789789
*/
790790
quic_set_connection_close(qc, quic_err_transport(QC_ERR_PROTOCOL_VIOLATION));
791-
goto leave;
791+
goto err;
792792
}
793793

794794
while (pos < end) {
795795
if (!qc_parse_frm(&frm, pkt, &pos, end, qc)) {
796796
// trace already emitted by function above
797-
goto leave;
797+
goto err;
798798
}
799799

800800
switch (frm.type) {
@@ -810,7 +810,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
810810

811811
if (!qc_parse_ack_frm(qc, &frm, qel, &rtt_sample, &pos, end)) {
812812
// trace already emitted by function above
813-
goto leave;
813+
goto err;
814814
}
815815

816816
if (rtt_sample != UINT_MAX) {
@@ -837,14 +837,14 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
837837
if (qcc_recv_stop_sending(qc->qcc, ss_frm->id,
838838
ss_frm->app_error_code)) {
839839
TRACE_ERROR("qcc_recv_stop_sending() failed", QUIC_EV_CONN_PRSHPKT, qc);
840-
goto leave;
840+
goto err;
841841
}
842842
}
843843
break;
844844
}
845845
case QUIC_FT_CRYPTO:
846846
if (!qc_handle_crypto_frm(qc, &frm.crypto, pkt, qel, &fast_retrans))
847-
goto leave;
847+
goto err;
848848
break;
849849
case QUIC_FT_NEW_TOKEN:
850850
/* TODO */
@@ -866,12 +866,12 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
866866
if (!qc_h3_request_reject(qc, strm_frm->id)) {
867867
TRACE_ERROR("error on request rejection", QUIC_EV_CONN_PRSHPKT, qc);
868868
/* This packet will not be acknowledged */
869-
goto leave;
869+
goto err;
870870
}
871871
}
872872
else {
873873
/* This packet will not be acknowledged */
874-
goto leave;
874+
goto err;
875875
}
876876
}
877877

@@ -880,7 +880,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
880880

881881
if (!qc_handle_strm_frm(pkt, strm_frm, qc, fin)) {
882882
TRACE_ERROR("qc_handle_strm_frm() failed", QUIC_EV_CONN_PRSHPKT, qc);
883-
goto leave;
883+
goto err;
884884
}
885885

886886
break;
@@ -897,7 +897,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
897897
if (qcc_recv_max_stream_data(qc->qcc, msd_frm->id,
898898
msd_frm->max_stream_data)) {
899899
TRACE_ERROR("qcc_recv_max_stream_data() failed", QUIC_EV_CONN_PRSHPKT, qc);
900-
goto leave;
900+
goto err;
901901
}
902902
}
903903
break;
@@ -924,7 +924,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
924924
struct quic_connection_id *conn_id = NULL;
925925

926926
if (!qc_handle_retire_connection_id_frm(qc, &frm, &pkt->dcid, &conn_id))
927-
goto leave;
927+
goto err;
928928

929929
if (!conn_id)
930930
break;
@@ -981,7 +981,7 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
981981
* error of type PROTOCOL_VIOLATION.
982982
*/
983983
quic_set_connection_close(qc, quic_err_transport(QC_ERR_PROTOCOL_VIOLATION));
984-
goto leave;
984+
goto err;
985985
}
986986

987987
qc->state = QUIC_HS_ST_CONFIRMED;
@@ -1020,10 +1020,12 @@ static int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet *pkt,
10201020
}
10211021
}
10221022

1023-
ret = 1;
1024-
leave:
10251023
TRACE_LEAVE(QUIC_EV_CONN_PRSHPKT, qc);
1026-
return ret;
1024+
return 1;
1025+
1026+
err:
1027+
TRACE_DEVEL("leaving on error", QUIC_EV_CONN_PRSHPKT, qc);
1028+
return 0;
10271029
}
10281030

10291031
/* Detect the value of the spin bit to be used. */

0 commit comments

Comments
 (0)