From fecc313e03394ebee15767ed8c8d45e6c3b559e9 Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Tue, 23 Aug 2022 22:49:41 +0800 Subject: [PATCH] dns_server: fix SERVERFAIL when A is 127.0.0.1 --- src/dns_server.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/dns_server.c b/src/dns_server.c index 1dd43db..d8a44ea 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -2322,6 +2322,7 @@ static int _dns_server_process_answer_A(struct dns_rrs *rrs, struct dns_request if (addr[0] == 0 || addr[0] == 127) { /* If half of the servers return the same result, then ignore this address */ if (atomic_inc_return(&request->adblock) <= (dns_server_num() / 2 + dns_server_num() % 2)) { + request->rcode = DNS_RC_NOERROR; _dns_server_request_release(request); return -1; } @@ -2398,6 +2399,7 @@ static int _dns_server_process_answer_AAAA(struct dns_rrs *rrs, struct dns_reque if (_dns_server_is_adblock_ipv6(addr) == 0) { /* If half of the servers return the same result, then ignore this address */ if (atomic_inc_return(&request->adblock) <= (dns_server_num() / 2 + dns_server_num() % 2)) { + request->rcode = DNS_RC_NOERROR; _dns_server_request_release(request); return -1; }