Support Delay DNS server bootstrap
This commit is contained in:
@@ -528,6 +528,7 @@ static int _dns_setup_ipset(struct dns_request *request)
|
||||
static int _dns_result_callback(struct dns_request *request)
|
||||
{
|
||||
char ip[DNS_MAX_CNAME_LEN];
|
||||
unsigned int ping_time = -1;
|
||||
|
||||
if (request->result_callback == NULL) {
|
||||
return 0;
|
||||
@@ -540,8 +541,8 @@ static int _dns_result_callback(struct dns_request *request)
|
||||
}
|
||||
|
||||
sprintf(ip, "%d.%d.%d.%d", request->ipv4_addr[0], request->ipv4_addr[1], request->ipv4_addr[2], request->ipv4_addr[3]);
|
||||
|
||||
return request->result_callback(request->domain, request->rcode, request->qtype, ip, request->user_ptr);
|
||||
ping_time = request->ping_ttl_v4;
|
||||
return request->result_callback(request->domain, request->rcode, request->qtype, ip, ping_time, request->user_ptr);
|
||||
} else if (request->qtype == DNS_T_AAAA) {
|
||||
if (request->has_ipv6 == 0) {
|
||||
goto out;
|
||||
@@ -551,16 +552,16 @@ static int _dns_result_callback(struct dns_request *request)
|
||||
request->ipv6_addr[2], request->ipv6_addr[3], request->ipv6_addr[4], request->ipv6_addr[5], request->ipv6_addr[6], request->ipv6_addr[7],
|
||||
request->ipv6_addr[8], request->ipv6_addr[9], request->ipv6_addr[10], request->ipv6_addr[11], request->ipv6_addr[12], request->ipv6_addr[13],
|
||||
request->ipv6_addr[14], request->ipv6_addr[15]);
|
||||
|
||||
return request->result_callback(request->domain, request->rcode, request->qtype, ip, request->user_ptr);
|
||||
ping_time = request->ping_ttl_v6;
|
||||
return request->result_callback(request->domain, request->rcode, request->qtype, ip, ping_time, request->user_ptr);
|
||||
}
|
||||
|
||||
request->result_callback(request->domain, DNS_RC_NXDOMAIN, request->qtype, ip, request->user_ptr);
|
||||
request->result_callback(request->domain, DNS_RC_NXDOMAIN, request->qtype, ip, ping_time, request->user_ptr);
|
||||
|
||||
return 0;
|
||||
out:
|
||||
|
||||
request->result_callback(request->domain, DNS_RC_NXDOMAIN, request->qtype, ip, request->user_ptr);
|
||||
request->result_callback(request->domain, DNS_RC_NXDOMAIN, request->qtype, ip, ping_time, request->user_ptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user