fix
This commit is contained in:
parent
df3696cd50
commit
94dc39805e
@ -246,15 +246,27 @@ remove_stream(StreamId, State = #state{streams = Streams, sockets = Sockets}) ->
|
||||
close_remote(#stream{socket = Socket}) ->
|
||||
gen_tcp:close(Socket).
|
||||
|
||||
send_frame(Type, StreamId, Payload, #state{server = Server, peer = Peer, cipher_key = Key}) ->
|
||||
PlainPacket = relay_server_udp_protocol:encode(Type, StreamId, Payload),
|
||||
send_frame(_Type, _StreamId, <<>>, _State) ->
|
||||
ok;
|
||||
send_frame(Type, StreamId, <<Part:1200/binary, Rest/binary>>, State) ->
|
||||
case send_frame0(Type, StreamId, Part, State) of
|
||||
ok ->
|
||||
send_frame(Type, StreamId, Rest, State);
|
||||
Error ->
|
||||
Error
|
||||
end;
|
||||
send_frame(Type, StreamId, Rest, State) ->
|
||||
send_frame0(Type, StreamId, Rest, State).
|
||||
|
||||
send_frame0(Type, StreamId, Part, #state{server = Server, peer = Peer, cipher_key = Key}) ->
|
||||
PlainPacket = relay_server_udp_protocol:encode(Type, StreamId, Part),
|
||||
case chacha20_cipher:encrypt(PlainPacket, Key) of
|
||||
{ok, Packet} ->
|
||||
logger:error("UDP relay encrypt packet size: ~p", [byte_size(Packet)]),
|
||||
Server ! {datagram, Peer, Packet},
|
||||
ok;
|
||||
{error, Reason} ->
|
||||
logger:error("UDP relay failed to encrypt ~p frame for stream ~p: ~p",
|
||||
[Type, StreamId, Reason]),
|
||||
logger:error("UDP relay failed to encrypt ~p frame for stream ~p: ~p", [Type, StreamId, Reason]),
|
||||
{error, Reason}
|
||||
end.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user