fix dns
This commit is contained in:
parent
98f2078dea
commit
e6163c06cc
@ -53,7 +53,7 @@ resolve(IpPacket) when is_binary(IpPacket) ->
|
|||||||
resolve0(QueryMsg = #dns_message{qc = 1, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]}) ->
|
resolve0(QueryMsg = #dns_message{qc = 1, questions = [#dns_query{name = QName, type = QType, class = QClass}|_]}) ->
|
||||||
%% 查找是否是内置的域名
|
%% 查找是否是内置的域名
|
||||||
case sdlan_hostname_regedit:lookup(QName) of
|
case sdlan_hostname_regedit:lookup(QName) of
|
||||||
{ok, Ip} ->
|
{ok, Ip} when QType =:= ?DNS_TYPE_A, QClass =:= ?DNS_CLASS_IN ->
|
||||||
Answer = #dns_rr {
|
Answer = #dns_rr {
|
||||||
name = QName,
|
name = QName,
|
||||||
type = QType,
|
type = QType,
|
||||||
@ -75,6 +75,8 @@ resolve0(QueryMsg = #dns_message{qc = 1, questions = [#dns_query{name = QName, t
|
|||||||
},
|
},
|
||||||
logger:debug("[dns_resolver] punchnet inbuilt qnanme: ~p, ip: ~p", [QName, Ip]),
|
logger:debug("[dns_resolver] punchnet inbuilt qnanme: ~p, ip: ~p", [QName, Ip]),
|
||||||
{ok, dns:encode_message(RespMsg)};
|
{ok, dns:encode_message(RespMsg)};
|
||||||
|
{ok, _Ip} ->
|
||||||
|
{ok, dns:encode_message(build_empty_response(QueryMsg))};
|
||||||
error ->
|
error ->
|
||||||
case sdlan_domain_regedit:maybe_domain(QName) of
|
case sdlan_domain_regedit:maybe_domain(QName) of
|
||||||
true ->
|
true ->
|
||||||
@ -87,6 +89,21 @@ resolve0(QueryMsg = #dns_message{qc = 1, questions = [#dns_query{name = QName, t
|
|||||||
resolve0(Error) ->
|
resolve0(Error) ->
|
||||||
{error, Error}.
|
{error, Error}.
|
||||||
|
|
||||||
|
-spec build_empty_response(QueryMsg :: #dns_message{}) -> EmptyResp :: #dns_message{}.
|
||||||
|
build_empty_response(QueryMsg) ->
|
||||||
|
QueryMsg#dns_message{
|
||||||
|
qr = true,
|
||||||
|
aa = true,
|
||||||
|
ra = true,
|
||||||
|
rc = ?DNS_RCODE_NOERROR,
|
||||||
|
anc = 0,
|
||||||
|
auc = 0,
|
||||||
|
adc = 0,
|
||||||
|
answers = [],
|
||||||
|
authority = [],
|
||||||
|
additional = []
|
||||||
|
}.
|
||||||
|
|
||||||
-spec build_nxdomain_response(QueryMsg :: #dns_message{}) -> EmptyResp :: #dns_message{}.
|
-spec build_nxdomain_response(QueryMsg :: #dns_message{}) -> EmptyResp :: #dns_message{}.
|
||||||
build_nxdomain_response(QueryMsg) ->
|
build_nxdomain_response(QueryMsg) ->
|
||||||
QueryMsg#dns_message{
|
QueryMsg#dns_message{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user