This commit is contained in:
anlicheng 2025-12-04 11:35:49 +08:00
parent 8ab62fce53
commit 28355c1df0

View File

@ -87,9 +87,10 @@ handle_cast(handle, State = #state{socket = Sock, src_ip = SrcIp, src_port = Src
lager:debug("[dns_handler] qname: ~p", [Qname]), lager:debug("[dns_handler] qname: ~p", [Qname]),
case dns_cache:lookup(Qname) of case dns_cache:lookup(Qname) of
{hit, R} -> {hit, R} ->
lager:debug("[dns_handler] hit cache rr: ~p", [R]),
Resp = build_response(Msg, R), Resp = build_response(Msg, R),
gen_udp:send(Sock, SrcIp, SrcPort, dns:encode_message(Resp)), gen_udp:send(Sock, SrcIp, SrcPort, dns:encode_message(Resp)),
{stop, normal}; {stop, normal, State};
miss -> miss ->
lager:debug("[dns_handler] cache is miss"), lager:debug("[dns_handler] cache is miss"),
forward_to_upstream(DnsIp, DnsPort, Packet, Msg), forward_to_upstream(DnsIp, DnsPort, Packet, Msg),
@ -99,7 +100,7 @@ handle_cast(handle, State = #state{socket = Sock, src_ip = SrcIp, src_port = Src
end; end;
Other -> Other ->
lager:warning("[] decode msg get error: ~p", [Other]), lager:warning("[] decode msg get error: ~p", [Other]),
{stop, normal} {stop, normal, State}
end. end.
%% @private %% @private
@ -125,7 +126,7 @@ handle_info({dns_resolver_reply, Resp}, State = #state{socket = Sock, src_ip = S
%% %%
case dns:decode_message(Resp) of case dns:decode_message(Resp) of
Msg = #dns_message{answers = Answers} -> Msg = #dns_message{answers = Answers} ->
lager:debug("[dns_handler] get a resolver reply: ~p, bin: ~p", [Msg, dns:encode_message(Msg)]), lager:debug("[dns_handler] get a resolver reply: ~p, bin: ~p", [Msg, Answers]),
dns_cache:insert(Qname, Answers), dns_cache:insert(Qname, Answers),
gen_udp:send(Sock, SrcIp, SrcPort, Resp); gen_udp:send(Sock, SrcIp, SrcPort, Resp);
Other -> Other ->