diff --git a/apps/sdlan/src/quic/sdlan_quic_channel.erl b/apps/sdlan/src/quic/sdlan_quic_channel.erl index a23cec2..b373d27 100644 --- a/apps/sdlan/src/quic/sdlan_quic_channel.erl +++ b/apps/sdlan/src/quic/sdlan_quic_channel.erl @@ -256,7 +256,7 @@ handle_event(internal, {frame, <>}, registered #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 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{ pkt_id = PktId, target_ip = TargetIp, diff --git a/apps/sdlan/src/sdlan_network.erl b/apps/sdlan/src/sdlan_network.erl index 53767fe..4431548 100644 --- a/apps/sdlan/src/sdlan_network.erl +++ b/apps/sdlan/src/sdlan_network.erl @@ -293,14 +293,14 @@ handle_cast({forward, Sock, SrcMac, DstMac, Packet}, State = #state{network_id = PacketBytes = byte_size(Packet), 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 pass -> %% client和stun之间必须有心跳机制保持nat映射可用,并且通过服务转发的udp包肯定可以到达对端的nat 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]), - gen_udp:send(Sock, Ip, Port, Packet), + gen_udp:send(Sock, NatIp, NatPort, Packet), {noreply, State#state{forward_bytes = ForwardBytes + PacketBytes}}; denied -> logger:notice("[sdlan_network] networkd_id: ~p, src_mac: ~p, dst_mac: ~p, rate limited, discard",