Просмотр исходного кода

dns_server: fix race issue regarding rcode.

Nick Peng 1 год назад
Родитель
Сommit
04d68e7797
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      src/dns_server.c

+ 4 - 1
src/dns_server.c

@@ -2622,6 +2622,10 @@ static int _dns_server_request_complete_with_all_IPs(struct dns_request *request
 				 request->ip_addr[9], request->ip_addr[10], request->ip_addr[11], request->ip_addr[12],
 				 request->ip_addr[13], request->ip_addr[14], request->ip_addr[15]);
 		}
+
+		if (request->rcode == DNS_RC_SERVFAIL && request->has_ip) {
+			request->rcode = DNS_RC_NOERROR;
+		}
 	}
 
 out:
@@ -7826,7 +7830,6 @@ static int _dns_server_tcp_process_one_request(struct dns_server_conn_tcp_client
 					goto errout;
 				}
 
-
 				if (http_decode_data == NULL) {
 					http_decode_data = malloc(DNS_IN_PACKSIZE);
 					if (http_decode_data == NULL) {