Skip to content

Commit b8a18e2

Browse files
NSAPI DNS query IP version check for non LWIP stacks.
1 parent 1798c24 commit b8a18e2

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
@@ -504,8 +504,13 @@ static nsapi_size_or_error_t nsapi_dns_query_multiple(NetworkStack *stack, const
504504
break;
505505
}
506506

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

510515
err = socket.sendto(dns_addr, packet, len);
511516
// send may fail for various reasons, including wrong address type - move on
@@ -1036,9 +1041,6 @@ static void nsapi_dns_query_async_send(void *ptr)
10361041
return;
10371042
}
10381043

1039-
// send the question
1040-
int len = dns_append_question(packet, query->dns_message_id, query->host, query->version);
1041-
10421044
while (true) {
10431045
SocketAddress dns_addr;
10441046
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);
@@ -1048,6 +1050,13 @@ static void nsapi_dns_query_async_send(void *ptr)
10481050
return;
10491051
}
10501052

1053+
if (query->version != NSAPI_UNSPEC && dns_addr.get_ip_version() != query->version) {
1054+
query->dns_server++;
1055+
continue;
1056+
}
1057+
// send the question
1058+
int len = dns_append_question(packet, query->dns_message_id, query->host, dns_addr.get_ip_version());
1059+
10511060
err = query->socket->sendto(dns_addr, packet, len);
10521061

10531062
if (err < 0) {

0 commit comments

Comments
 (0)