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