diff --git a/apps/dns_proxy/src/dns_resolver.erl b/apps/dns_proxy/src/dns_resolver.erl index 5783ed4..7dc2956 100644 --- a/apps/dns_proxy/src/dns_resolver.erl +++ b/apps/dns_proxy/src/dns_resolver.erl @@ -83,6 +83,7 @@ handle_cast({forward, ReceiverPid, Ref, Request, #dns_message{id = TxId, questio Keys = lists:foldl(fun({DnsIp, DnsPort}, Acc) -> ok = gen_udp:send(Socket, DnsIp, DnsPort, Request), Key = {TxId, DnsIp, DnsPort, QName, QType, QClass}, + lager:debug("[dns_resolver] key: ~p, send to: ~p, packet: ~p", [Key, {DnsIp, DnsPort}, Request]), true = ets:insert(Tid, {Key, Ref, ReceiverPid}), [Key|Acc] end, [], DnsServers), @@ -99,8 +100,9 @@ handle_cast({forward, ReceiverPid, Ref, Request, #dns_message{id = TxId, questio handle_info({udp, Socket, TargetIp, TargetPort, Resp}, State = #state{tid = Tid, socket = Socket}) -> case dns:decode_message(Resp) of #dns_message{id = TxId, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]} -> - Key = {TxId, TargetIp, TargetPort, QName, QName, QType, QClass}, - resolver_reply(ets:take(Tid, Key), Resp); + Key = {TxId, TargetIp, TargetPort, QName, QType, QClass}, + Records = ets:take(Tid, Key), + resolver_reply(Records, Resp); _ -> ok end,