@@ -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