fix network
This commit is contained in:
parent
4109f06ce4
commit
5c3ed391ff
@ -12,7 +12,6 @@
|
|||||||
mysql,
|
mysql,
|
||||||
jiffy,
|
jiffy,
|
||||||
hackney,
|
hackney,
|
||||||
gpb,
|
|
||||||
throttle,
|
throttle,
|
||||||
dns_erlang,
|
dns_erlang,
|
||||||
pkt,
|
pkt,
|
||||||
|
|||||||
@ -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)}.
|
||||||
|
|||||||
@ -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).
|
|
||||||
Loading…
x
Reference in New Issue
Block a user