Merge pull request #9900 from michalpasztamobica/dns_async_handle_would_block

DNS send returning WOULD_BLOCK forces delayed retry
pull/10068/head
Martin Kojtal 2019-03-14 13:01:20 +01:00 committed by GitHub
commit 5252163534
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -1021,7 +1021,14 @@ static void nsapi_dns_query_async_send(void *ptr)
err = query->socket->sendto(dns_addr, packet, len);
if (err < 0) {
query->dns_server++;
if (err == NSAPI_ERROR_WOULD_BLOCK) {
nsapi_dns_call_in(query->call_in_cb, DNS_TIMER_TIMEOUT, mbed::callback(nsapi_dns_query_async_send, ptr));
free(packet);
dns_mutex->unlock();
return; // Timeout handler will retry the connection if possible
} else {
query->dns_server++;
}
} else {
break;
}