|
@@ -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;
|
|
}
|
|
}
|
|
|
|
|