From 9b52beaee92b3d22d9402bc948dc41874ca785e2 Mon Sep 17 00:00:00 2001 From: William Yang Date: Mon, 5 Dec 2022 11:04:03 +0100 Subject: [PATCH] fix(quic): handle fast_close while handshake fail --- apps/emqx/src/emqx_quic_stream.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/emqx/src/emqx_quic_stream.erl b/apps/emqx/src/emqx_quic_stream.erl index 70b01e643..2469a2ea7 100644 --- a/apps/emqx/src/emqx_quic_stream.erl +++ b/apps/emqx/src/emqx_quic_stream.erl @@ -159,9 +159,13 @@ getopts(_Socket, _Opts) -> {buffer, 80000} ]}. +%% @TODO supply some App Error Code +fast_close({ConnOwner, Conn, _ConnInfo}) when is_pid(ConnOwner) -> + %% handshake aborted. + quicer:async_shutdown_connection(Conn, ?QUIC_CONNECTION_SHUTDOWN_FLAG_NONE, 0), + ok; fast_close({quic, Conn, _Stream, _Info}) -> %% Since we shutdown the control stream, we shutdown the connection as well - %% @TODO supply some App Error Code quicer:async_shutdown_connection(Conn, ?QUIC_CONNECTION_SHUTDOWN_FLAG_NONE, 0), ok.