From 76d403e9eb235e70bf4fbe779205781b9e0b9b05 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Sat, 13 Dec 2025 23:31:59 +0800 Subject: [PATCH] fix error --- apps/sdlan/src/dns_proxy/dns_handler.erl | 13 ++++++------- apps/sdlan/src/dns_proxy/dns_resolver.erl | 8 ++++---- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/sdlan/src/dns_proxy/dns_handler.erl b/apps/sdlan/src/dns_proxy/dns_handler.erl index 21c6893..d889ee2 100644 --- a/apps/sdlan/src/dns_proxy/dns_handler.erl +++ b/apps/sdlan/src/dns_proxy/dns_handler.erl @@ -80,13 +80,12 @@ handle_cast({handle_ip_packet, Sock, SrcIp, SrcPort, IpPacket}, State) -> case resolver(UdpPayload) of {ok, DnsResp} -> RespIpPacket = build_ip_packet(ReqDAddr, ReqSAddr, ReqDPort, ReqSPort, DnsResp), - lager:debug("[dns_handler] ip packet: ~p", [RespIpPacket]), gen_udp:send(Sock, SrcIp, SrcPort, RespIpPacket); {error, Reason} -> - lager:debug("[dns_handler] resolver get error: ~p", [Reason]) + lager:notice("[dns_handler] resolver get error: ~p", [Reason]) end; false -> - lager:debug("[dns_handler] resolver invalid protocol: ~p", [Protocol]) + lager:notice("[dns_handler] resolver invalid protocol: ~p", [Protocol]) end, {stop, normal, State}. @@ -147,25 +146,25 @@ resolver0(Packet, QueryMsg = #dns_message{qc = 1, questions = [Question = #dns_q authority = [], additional = [] }, - lager:debug("[dns_handler] inbuilt qnanme: ~p, ip: ~p", [QName, Ip]), + lager:debug("[dns_handler] punchnet inbuilt qnanme: ~p, ip: ~p", [QName, Ip]), {ok, dns:encode_message(RespMsg)}; error -> %% 是否命中内部的域名后缀 EmptyDnsResp = dns:encode_message(build_nxdomain_response(QueryMsg)), case sdlan_domain_regedit:maybe_domain(QName) of true -> - lager:debug("[dns_handler] inbuilt qnanme: ~p, domain not exits", [QName]), + lager:debug("[dns_handler] punchnet inbuilt qnanme: ~p, nxdomain", [QName]), {ok, EmptyDnsResp}; false -> case dns_cache:lookup(Question) of {hit, Cache} -> - lager:debug("[dns_handler] question: ~p, hit cache answers: ~p", [Question, Cache#dns_cache.answers]), + lager:debug("[dns_handler] qname: ~p, hit cache answers: ~p", [QName, Cache#dns_cache.answers]), RespMsg = build_response(QueryMsg, Cache), {ok, dns:encode_message(RespMsg)}; miss -> - lager:debug("[dns_handler] cache is miss"), Ref = make_ref(), forward_to_upstream(Ref, Packet, QueryMsg), + lager:debug("[dns_handler] cache is miss, forward_to_upstream"), receive {dns_resolver_reply, Ref, Resp} -> case dns:decode_message(Resp) of diff --git a/apps/sdlan/src/dns_proxy/dns_resolver.erl b/apps/sdlan/src/dns_proxy/dns_resolver.erl index 9828d19..f120b9e 100644 --- a/apps/sdlan/src/dns_proxy/dns_resolver.erl +++ b/apps/sdlan/src/dns_proxy/dns_resolver.erl @@ -98,13 +98,13 @@ handle_cast({forward, ReceiverPid, Ref, Request, #dns_message{id = TxId, questio {noreply, NewState :: #state{}, timeout() | hibernate} | {stop, Reason :: term(), NewState :: #state{}}). handle_info({udp, Socket, TargetIp, TargetPort, Resp}, State = #state{tid = Tid, socket = Socket}) -> - case dns:decode_message(Resp) of + try dns:decode_message(Resp) of #dns_message{id = TxId, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]} -> Key = {TxId, TargetIp, TargetPort, QName, QType, QClass}, Records = ets:take(Tid, Key), - resolver_reply(Records, Resp); - _ -> - ok + resolver_reply(Records, Resp) + catch error:_ -> + ok end, {noreply, State};