This commit is contained in:
anlicheng 2026-03-11 15:18:36 +08:00
parent 24cbbe0940
commit d735f29c2f
2 changed files with 3 additions and 3 deletions

View File

@ -256,7 +256,7 @@ handle_event(internal, {frame, <<?PACKET_ARP_REQUEST, Body/binary>>}, registered
#sdl_arp_request{pkt_id = PktId, target_ip = TargetIp} = sdlan_pb:decode_msg(Body, sdl_arp_request), #sdl_arp_request{pkt_id = PktId, target_ip = TargetIp} = sdlan_pb:decode_msg(Body, sdl_arp_request),
case sdlan_network:arp_request(NetworkPid, TargetIp) of case sdlan_network:arp_request(NetworkPid, TargetIp) of
error -> error ->
logger:debug("[sdlan_channel] network: ~p, arp_request target_ip: ~p, mac not found", [NetworkId, TargetIp]), logger:debug("[sdlan_channel] network: ~p, arp_request target_ip: ~p, mac not found", [NetworkId, sdlan_util:int_to_ipv4(TargetIp)]),
EmptyArpResponsePkt = sdlan_pb:encode_msg(#sdl_arp_response{ EmptyArpResponsePkt = sdlan_pb:encode_msg(#sdl_arp_response{
pkt_id = PktId, pkt_id = PktId,
target_ip = TargetIp, target_ip = TargetIp,

View File

@ -293,14 +293,14 @@ handle_cast({forward, Sock, SrcMac, DstMac, Packet}, State = #state{network_id =
PacketBytes = byte_size(Packet), PacketBytes = byte_size(Packet),
case maps:find(DstMac, Endpoints) of case maps:find(DstMac, Endpoints) of
{ok, #endpoint{hole = #hole{peer = Peer = {Ip, Port}}}} -> {ok, #endpoint{hole = #hole{peer = Peer = {NatIp, NatPort}}}} ->
case limiting_check(ThrottleKey) of case limiting_check(ThrottleKey) of
pass -> pass ->
%% client和stun之间必须有心跳机制保持nat映射可用udp包肯定可以到达对端的nat %% client和stun之间必须有心跳机制保持nat映射可用udp包肯定可以到达对端的nat
logger:debug("[sdlan_network] forward data networkd_id: ~p, src_mac: ~p, dst_mac: ~p, hole: ~p", logger:debug("[sdlan_network] forward data networkd_id: ~p, src_mac: ~p, dst_mac: ~p, hole: ~p",
[NetworkId, sdlan_util:format_mac(SrcMac), sdlan_util:format_mac(DstMac), Peer]), [NetworkId, sdlan_util:format_mac(SrcMac), sdlan_util:format_mac(DstMac), Peer]),
gen_udp:send(Sock, Ip, Port, Packet), gen_udp:send(Sock, NatIp, NatPort, Packet),
{noreply, State#state{forward_bytes = ForwardBytes + PacketBytes}}; {noreply, State#state{forward_bytes = ForwardBytes + PacketBytes}};
denied -> denied ->
logger:notice("[sdlan_network] networkd_id: ~p, src_mac: ~p, dst_mac: ~p, rate limited, discard", logger:notice("[sdlan_network] networkd_id: ~p, src_mac: ~p, dst_mac: ~p, rate limited, discard",