@@ -504,8 +504,13 @@ static nsapi_size_or_error_t nsapi_dns_query_multiple(NetworkStack *stack, const
504
504
break ;
505
505
}
506
506
507
+ if (version != NSAPI_UNSPEC && (dns_addr.get_ip_version () != version)) {
508
+ retries = MBED_CONF_NSAPI_DNS_RETRIES;
509
+ index++;
510
+ continue ;
511
+ }
507
512
// 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 () );
509
514
510
515
err = socket.sendto (dns_addr, packet, len);
511
516
// 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)
1036
1041
return ;
1037
1042
}
1038
1043
1039
- // send the question
1040
- int len = dns_append_question (packet, query->dns_message_id , query->host , query->version );
1041
-
1042
1044
while (true ) {
1043
1045
SocketAddress dns_addr;
1044
1046
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)
1048
1050
return ;
1049
1051
}
1050
1052
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
+
1051
1060
err = query->socket ->sendto (dns_addr, packet, len);
1052
1061
1053
1062
if (err < 0 ) {
0 commit comments