fix accept stream

This commit is contained in:
anlicheng 2026-02-19 22:43:26 +08:00
parent 73d86101ca
commit c1f28aeb55

View File

@ -99,25 +99,19 @@ handle_event(internal, do_init, initializing, State=#state{conn = Conn}) ->
{ok, _} = quicer:async_accept_stream(Conn, #{active => true}), {ok, _} = quicer:async_accept_stream(Conn, #{active => true}),
{next_state, waiting_stream, State}; {next_state, waiting_stream, State};
handle_event(info, Info, waiting_stream, State=#state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) -> handle_event(info, {quic, new_stream, Stream, Opts}, waiting_stream, State=#state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) ->
logger:debug("[sdlan_quic_channel] call do_init of info: ~p", [Info]), logger:debug("[sdlan_quic_channel] call new_stream: ~p, opts: ~p", [Stream, Opts]),
case quicer:accept_stream(Conn, #{active => true}) of %%
{ok, Stream} -> WelcomePkt = sdlan_pb:encode_msg(#sdl_welcome{
%% version = 1,
WelcomePkt = sdlan_pb:encode_msg(#sdl_welcome{ max_bidi_streams = 1,
version = 1, max_packet_size = MaxPacketSize,
max_bidi_streams = 1, heartbeat_sec = HeartbeatSec
max_packet_size = MaxPacketSize, }),
heartbeat_sec = HeartbeatSec quic_send(Stream, <<?PACKET_WELCOME, WelcomePkt/binary>>),
}), logger:debug("[sdlan_quic_channel] get stream: ~p, send welcome", [Stream]),
quic_send(Stream, <<?PACKET_WELCOME, WelcomePkt/binary>>),
logger:debug("[sdlan_quic_channel] get stream: ~p, send welcome", [Stream]),
{next_state, initialized, State#state{stream = Stream}}; {next_state, initialized, State#state{stream = Stream}};
{error, Reason} ->
logger:error("[sdlan_quic_channel] accept stream failed: ~p", [Reason]),
{stop, Reason, State}
end;
handle_event(info, {frame, <<?PACKET_REGISTER_SUPER, Body/binary>>}, initialized, State=#state{stream = Stream}) -> handle_event(info, {frame, <<?PACKET_REGISTER_SUPER, Body/binary>>}, initialized, State=#state{stream = Stream}) ->
#sdl_register_super{ #sdl_register_super{