fix
This commit is contained in:
parent
5d41b45d6f
commit
7c3474afab
@ -83,6 +83,7 @@ handle_cast({forward, ReceiverPid, Ref, Request, #dns_message{id = TxId, questio
|
|||||||
Keys = lists:foldl(fun({DnsIp, DnsPort}, Acc) ->
|
Keys = lists:foldl(fun({DnsIp, DnsPort}, Acc) ->
|
||||||
ok = gen_udp:send(Socket, DnsIp, DnsPort, Request),
|
ok = gen_udp:send(Socket, DnsIp, DnsPort, Request),
|
||||||
Key = {TxId, DnsIp, DnsPort, QName, QType, QClass},
|
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}),
|
true = ets:insert(Tid, {Key, Ref, ReceiverPid}),
|
||||||
[Key|Acc]
|
[Key|Acc]
|
||||||
end, [], DnsServers),
|
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}) ->
|
handle_info({udp, Socket, TargetIp, TargetPort, Resp}, State = #state{tid = Tid, socket = Socket}) ->
|
||||||
case dns:decode_message(Resp) of
|
case dns:decode_message(Resp) of
|
||||||
#dns_message{id = TxId, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]} ->
|
#dns_message{id = TxId, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]} ->
|
||||||
Key = {TxId, TargetIp, TargetPort, QName, QName, QType, QClass},
|
Key = {TxId, TargetIp, TargetPort, QName, QType, QClass},
|
||||||
resolver_reply(ets:take(Tid, Key), Resp);
|
Records = ets:take(Tid, Key),
|
||||||
|
resolver_reply(Records, Resp);
|
||||||
_ ->
|
_ ->
|
||||||
ok
|
ok
|
||||||
end,
|
end,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user