From b5efa50a5a28cc8cb8a6d9d89c2181162bda7eda Mon Sep 17 00:00:00 2001 From: wangfuyu Date: Thu, 15 Dec 2022 00:30:34 +0800 Subject: [PATCH] m) optimize new conn logic (#443) 1) on_new_conn only be called after handshake_ok 2) on_conn_closed only be called by ietf_full_conn_ci_destroy Co-authored-by: wangfuyu --- src/liblsquic/lsquic_full_conn_ietf.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/liblsquic/lsquic_full_conn_ietf.c b/src/liblsquic/lsquic_full_conn_ietf.c index faf1d75..db09df0 100644 --- a/src/liblsquic/lsquic_full_conn_ietf.c +++ b/src/liblsquic/lsquic_full_conn_ietf.c @@ -1681,14 +1681,14 @@ lsquic_ietf_full_conn_server_new (struct lsquic_engine_public *enpub, conn->ifc_last_live_update = now; + if (0 != handshake_ok(&conn->ifc_conn)) + goto err3; + LSQ_DEBUG("Calling on_new_conn callback"); conn->ifc_conn.cn_conn_ctx = conn->ifc_enpub->enp_stream_if->on_new_conn( conn->ifc_enpub->enp_stream_if_ctx, &conn->ifc_conn); conn->ifc_idle_to = conn->ifc_settings->es_idle_timeout * 1000000; - if (0 != handshake_ok(&conn->ifc_conn)) - goto err3; - conn->ifc_created = imc->imc_created; if (conn->ifc_idle_to) lsquic_alarmset_set(&conn->ifc_alset, AL_IDLE, @@ -1708,7 +1708,6 @@ lsquic_ietf_full_conn_server_new (struct lsquic_engine_public *enpub, return &conn->ifc_conn; err3: - conn->ifc_enpub->enp_stream_if->on_conn_closed(&conn->ifc_conn); ietf_full_conn_ci_destroy(&conn->ifc_conn); return NULL;