Skip to content

Commit 2234976

Browse files
committed
dns_server: fix request group issue
1 parent da63687 commit 2234976

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

src/dns_server.c

+24-15
Original file line numberDiff line numberDiff line change
@@ -6684,6 +6684,7 @@ static void _dns_server_mdns_query_setup_server_group(struct dns_request *reques
66846684
}
66856685

66866686
*group_name = DNS_SERVER_GROUP_MDNS;
6687+
safe_strncpy(request->dns_group_name, DNS_SERVER_GROUP_MDNS, sizeof(request->dns_group_name));
66876688
return;
66886689
}
66896690

@@ -6825,19 +6826,36 @@ static int _dns_server_setup_request_conf(struct dns_request *request)
68256826
return 0;
68266827
}
68276828

6829+
static void _dns_server_setup_dns_group_name(struct dns_request *request, const char **server_group_name)
6830+
{
6831+
const char *group_name = NULL;
6832+
const char *temp_group_name = NULL;
6833+
if (request->conn) {
6834+
group_name = request->conn->dns_group;
6835+
}
6836+
6837+
temp_group_name = _dns_server_get_request_server_groupname(request);
6838+
if (temp_group_name != NULL) {
6839+
group_name = temp_group_name;
6840+
}
6841+
6842+
if (request->dns_group_name[0] != '\0') {
6843+
group_name = request->dns_group_name;
6844+
} else {
6845+
safe_strncpy(request->dns_group_name, group_name, sizeof(request->dns_group_name));
6846+
}
6847+
6848+
*server_group_name = group_name;
6849+
}
6850+
68286851
static int _dns_server_do_query(struct dns_request *request, int skip_notify_event)
68296852
{
68306853
int ret = -1;
68316854
const char *server_group_name = NULL;
6832-
const char *dns_group = NULL;
68336855
struct dns_query_options options;
68346856
char *request_domain = request->domain;
68356857
char domain_buffer[DNS_MAX_CNAME_LEN * 2];
68366858

6837-
if (request->conn) {
6838-
dns_group = request->conn->dns_group;
6839-
}
6840-
68416859
request->send_tick = get_tick_count();
68426860

68436861
if (_dns_server_setup_request_conf_pre(request) != 0) {
@@ -6847,16 +6865,7 @@ static int _dns_server_do_query(struct dns_request *request, int skip_notify_eve
68476865
/* lookup domain rule */
68486866
_dns_server_get_domain_rule(request);
68496867

6850-
if (request->dns_group_name[0] == '\0') {
6851-
if (dns_group) {
6852-
safe_strncpy(request->dns_group_name, dns_group, sizeof(request->dns_group_name));
6853-
}
6854-
}
6855-
6856-
server_group_name = _dns_server_get_request_server_groupname(request);
6857-
if (server_group_name == NULL) {
6858-
server_group_name = request->dns_group_name;
6859-
}
6868+
_dns_server_setup_dns_group_name(request, &server_group_name);
68606869

68616870
if (_dns_server_setup_request_conf(request) != 0) {
68626871
goto errout;

0 commit comments

Comments
 (0)