Skip to content

Commit 412b0ae

Browse files
authored
Merge pull request #11375 from tymoteuszblochmobica/nsapi_dns
NSAPI DNS query IP version check for non LWIP stacks.
2 parents 5303b10 + b8a18e2 commit 412b0ae

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

features/netsocket/nsapi_dns.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -505,8 +505,13 @@ static nsapi_size_or_error_t nsapi_dns_query_multiple(NetworkStack *stack, const
505505
break;
506506
}
507507

508+
if (version != NSAPI_UNSPEC && (dns_addr.get_ip_version() != version)) {
509+
retries = MBED_CONF_NSAPI_DNS_RETRIES;
510+
index++;
511+
continue;
512+
}
508513
// send the question
509-
int len = dns_append_question(packet, 1, host, version);
514+
int len = dns_append_question(packet, 1, host, dns_addr.get_ip_version());
510515

511516
err = socket.sendto(dns_addr, packet, len);
512517
// send may fail for various reasons, including wrong address type - move on
@@ -1039,9 +1044,6 @@ static void nsapi_dns_query_async_send(void *ptr)
10391044
return;
10401045
}
10411046

1042-
// send the question
1043-
int len = dns_append_question(packet, query->dns_message_id, query->host, query->version);
1044-
10451047
while (true) {
10461048
SocketAddress dns_addr;
10471049
nsapi_size_or_error_t err = nsapi_dns_get_server_addr(query->stack, &(query->dns_server), &(query->total_attempts), &(query->send_success), &dns_addr, query->interface_name);
@@ -1051,6 +1053,13 @@ static void nsapi_dns_query_async_send(void *ptr)
10511053
return;
10521054
}
10531055

1056+
if (query->version != NSAPI_UNSPEC && dns_addr.get_ip_version() != query->version) {
1057+
query->dns_server++;
1058+
continue;
1059+
}
1060+
// send the question
1061+
int len = dns_append_question(packet, query->dns_message_id, query->host, dns_addr.get_ip_version());
1062+
10541063
err = query->socket->sendto(dns_addr, packet, len);
10551064

10561065
if (err < 0) {

0 commit comments

Comments
 (0)