fix network

This commit is contained in:
anlicheng 2026-05-03 15:18:29 +08:00
parent 4109f06ce4
commit 5c3ed391ff
3 changed files with 4 additions and 42 deletions

View File

@ -12,7 +12,6 @@
mysql, mysql,
jiffy, jiffy,
hackney, hackney,
gpb,
throttle, throttle,
dns_erlang, dns_erlang,
pkt, pkt,

View File

@ -467,7 +467,7 @@ insert_endpoint(Table, Mac, Endpoint = #endpoint{}) when is_binary(Mac) ->
delete_endpoint(Table, Mac) when is_binary(Mac) -> delete_endpoint(Table, Mac) when is_binary(Mac) ->
ets:delete(Table, Mac). ets:delete(Table, Mac).
-spec lookup_endpoint(ets:tid(), Mac :: binary()) -> #endpoint{} | undefined. -spec lookup_endpoint(atom() | ets:tid(), Mac :: binary()) -> #endpoint{} | undefined.
lookup_endpoint(Table, Mac) when is_binary(Mac) -> lookup_endpoint(Table, Mac) when is_binary(Mac) ->
try ets:lookup(Table, Mac) of try ets:lookup(Table, Mac) of
[{Mac, Endpoint = #endpoint{}}] -> [{Mac, Endpoint = #endpoint{}}] ->
@ -478,9 +478,7 @@ lookup_endpoint(Table, Mac) when is_binary(Mac) ->
undefined undefined
end. end.
-spec list_endpoints(NetworkIdOrTable :: integer() | ets:tid()) -> [{binary(), #endpoint{}}]. -spec list_endpoints(atom() | ets:tid()) -> [{binary(), #endpoint{}}].
list_endpoints(NetworkId) when is_integer(NetworkId) ->
list_endpoints(endpoint_table_name(NetworkId));
list_endpoints(Table) -> list_endpoints(Table) ->
try ets:tab2list(Table) of try ets:tab2list(Table) of
Endpoints when is_list(Endpoints) -> Endpoints when is_list(Endpoints) ->
@ -533,12 +531,13 @@ forward_unicast_by_ets(NetworkId, Sock, SrcMac, DstMac, Packet) ->
-spec forward_broadcast_by_ets(NetworkId :: integer(), Sock :: any(), SrcMac :: binary(), DstMac :: binary(), Packet :: binary()) -> -spec forward_broadcast_by_ets(NetworkId :: integer(), Sock :: any(), SrcMac :: binary(), DstMac :: binary(), Packet :: binary()) ->
{ok, integer()}. {ok, integer()}.
forward_broadcast_by_ets(NetworkId, Sock, SrcMac, DstMac, Packet) -> forward_broadcast_by_ets(NetworkId, Sock, SrcMac, DstMac, Packet) ->
Table = endpoint_table_name(NetworkId),
lists:foreach(fun lists:foreach(fun
({Mac, #endpoint{hole = #hole{peer = {NatIp, NatPort}}}}) when Mac =/= SrcMac -> ({Mac, #endpoint{hole = #hole{peer = {NatIp, NatPort}}}}) when Mac =/= SrcMac ->
gen_udp:send(Sock, NatIp, NatPort, Packet); gen_udp:send(Sock, NatIp, NatPort, Packet);
(_) -> (_) ->
ok ok
end, list_endpoints(NetworkId)), end, list_endpoints(Table)),
logger:debug("[sdlan_network] broadcast data by ets networkd_id: ~p, src_mac: ~p, dst_mac: ~p", logger:debug("[sdlan_network] broadcast data by ets networkd_id: ~p, src_mac: ~p, dst_mac: ~p",
[NetworkId, sdlan_util:format_mac(SrcMac), sdlan_util:format_mac(DstMac)]), [NetworkId, sdlan_util:format_mac(SrcMac), sdlan_util:format_mac(DstMac)]),
{ok, byte_size(Packet)}. {ok, byte_size(Packet)}.

View File

@ -1,36 +0,0 @@
%%%-------------------------------------------------------------------
%%% @author anlicheng
%%% @copyright (C) 2026, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 13. 2 2026 12:46
%%%-------------------------------------------------------------------
-module(quic_client).
-author("anlicheng").
%% API
-export([start/0]).
-export([do_start/0]).
start() ->
erlang:spawn(?MODULE, do_start, []).
do_start() ->
Port = 1365,
{ok, Conn} = quicer:connect("localhost", Port, [{alpn, ["punchnet/1.0"]}, {verify, none}], 5000),
{ok, Stm} = quicer:start_stream(Conn, []),
receive
Info ->
logger:debug("get info: ~p", [Info])
end,
Data = <<"ping">>,
Len = byte_size(Data),
Payload = <<Len:16, Data/binary, Len:16, Data/binary>>,
{ok, SendLen} = quicer:send(Stm, Payload),
logger:debug("[quic_client] client send success: ~p", [SendLen]),
receive {quic, <<"pong">>, Stm, _Props} -> ok end,
ok = quicer:close_connection(Conn).