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}) ->
|
close_remote(#stream{socket = Socket}) ->
|
||||||
gen_tcp:close(Socket).
|
gen_tcp:close(Socket).
|
||||||
|
|
||||||
send_frame(Type, StreamId, Payload, #state{server = Server, peer = Peer, cipher_key = Key}) ->
|
send_frame(_Type, _StreamId, <<>>, _State) ->
|
||||||
PlainPacket = relay_server_udp_protocol:encode(Type, StreamId, Payload),
|
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
|
case chacha20_cipher:encrypt(PlainPacket, Key) of
|
||||||
{ok, Packet} ->
|
{ok, Packet} ->
|
||||||
|
logger:error("UDP relay encrypt packet size: ~p", [byte_size(Packet)]),
|
||||||
Server ! {datagram, Peer, Packet},
|
Server ! {datagram, Peer, Packet},
|
||||||
ok;
|
ok;
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
logger:error("UDP relay failed to encrypt ~p frame for stream ~p: ~p",
|
logger:error("UDP relay failed to encrypt ~p frame for stream ~p: ~p", [Type, StreamId, Reason]),
|
||||||
[Type, StreamId, Reason]),
|
|
||||||
{error, Reason}
|
{error, Reason}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user