소스 검색

dns-client: allow same upstream server with different proxy.

Nick Peng 2 년 전
부모
커밋
2ca4c92c9f
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      src/dns_client.c

+ 6 - 2
src/dns_client.c

@@ -447,7 +447,7 @@ errout:
 }
 
 /* check whether server exists */
-static int _dns_client_server_exist(const char *server_ip, int port, dns_server_type_t server_type)
+static int _dns_client_server_exist(const char *server_ip, int port, dns_server_type_t server_type, struct client_dns_server_flags *flags)
 {
 	struct dns_server_info *server_info = NULL;
 	struct dns_server_info *tmp = NULL;
@@ -458,6 +458,10 @@ static int _dns_client_server_exist(const char *server_ip, int port, dns_server_
 			continue;
 		}
 
+		if (memcmp(&server_info->flags, flags, sizeof(*flags)) == 0) {
+			continue;
+		}
+
 		if (strncmp(server_info->ip, server_ip, DNS_HOSTNAME_LEN) != 0) {
 			continue;
 		}
@@ -1029,7 +1033,7 @@ static int _dns_client_server_add(char *server_ip, char *server_host, int port,
 	}
 
 	/* if server exist, return */
-	if (_dns_client_server_exist(server_ip, port, server_type) == 0) {
+	if (_dns_client_server_exist(server_ip, port, server_type, flags) == 0) {
 		return 0;
 	}