Skip to content

Commit

Permalink
dns_server: fix request group issue
Browse files Browse the repository at this point in the history
  • Loading branch information
pymumu committed Mar 29, 2024
1 parent da63687 commit 2234976
Showing 1 changed file with 24 additions and 15 deletions.
39 changes: 24 additions & 15 deletions src/dns_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -6684,6 +6684,7 @@ static void _dns_server_mdns_query_setup_server_group(struct dns_request *reques
}

*group_name = DNS_SERVER_GROUP_MDNS;
safe_strncpy(request->dns_group_name, DNS_SERVER_GROUP_MDNS, sizeof(request->dns_group_name));
return;
}

Expand Down Expand Up @@ -6825,19 +6826,36 @@ static int _dns_server_setup_request_conf(struct dns_request *request)
return 0;
}

static void _dns_server_setup_dns_group_name(struct dns_request *request, const char **server_group_name)
{
const char *group_name = NULL;
const char *temp_group_name = NULL;
if (request->conn) {
group_name = request->conn->dns_group;
}

temp_group_name = _dns_server_get_request_server_groupname(request);
if (temp_group_name != NULL) {
group_name = temp_group_name;
}

if (request->dns_group_name[0] != '\0') {
group_name = request->dns_group_name;
} else {
safe_strncpy(request->dns_group_name, group_name, sizeof(request->dns_group_name));
}

*server_group_name = group_name;
}

static int _dns_server_do_query(struct dns_request *request, int skip_notify_event)
{
int ret = -1;
const char *server_group_name = NULL;
const char *dns_group = NULL;
struct dns_query_options options;
char *request_domain = request->domain;
char domain_buffer[DNS_MAX_CNAME_LEN * 2];

if (request->conn) {
dns_group = request->conn->dns_group;
}

request->send_tick = get_tick_count();

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

if (request->dns_group_name[0] == '\0') {
if (dns_group) {
safe_strncpy(request->dns_group_name, dns_group, sizeof(request->dns_group_name));
}
}

server_group_name = _dns_server_get_request_server_groupname(request);
if (server_group_name == NULL) {
server_group_name = request->dns_group_name;
}
_dns_server_setup_dns_group_name(request, &server_group_name);

if (_dns_server_setup_request_conf(request) != 0) {
goto errout;
Expand Down

0 comments on commit 2234976

Please sign in to comment.