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