浏览代码

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 */
 /* 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 *server_info = NULL;
 	struct dns_server_info *tmp = 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;
 			continue;
 		}
 		}
 
 
+		if (memcmp(&server_info->flags, flags, sizeof(*flags)) == 0) {
+			continue;
+		}
+
 		if (strncmp(server_info->ip, server_ip, DNS_HOSTNAME_LEN) != 0) {
 		if (strncmp(server_info->ip, server_ip, DNS_HOSTNAME_LEN) != 0) {
 			continue;
 			continue;
 		}
 		}
@@ -1029,7 +1033,7 @@ static int _dns_client_server_add(char *server_ip, char *server_host, int port,
 	}
 	}
 
 
 	/* if server exist, return */
 	/* 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;
 		return 0;
 	}
 	}