1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-12 01:53:07 +03:00

hostByName timeout fixes (#8787)

* single impl
This commit is contained in:
Max Prokhorov
2023-01-05 16:29:14 +03:00
committed by GitHub
parent 3e357f32b1
commit f06710eb6e
5 changed files with 126 additions and 104 deletions

View File

@ -37,18 +37,27 @@
#include <netdb.h> // gethostbyname
err_t dns_gethostbyname(const char* hostname, ip_addr_t* addr, dns_found_callback found,
void* callback_arg)
err_t dns_gethostbyname_addrtype(const char* hostname, ip_addr_t* addr, dns_found_callback, void*,
u8 type)
{
(void)callback_arg;
(void)found;
struct hostent* hbn = gethostbyname(hostname);
auto* hbn = gethostbyname(hostname);
if (!hbn)
return ERR_TIMEOUT;
addr->addr = *(uint32_t*)hbn->h_addr_list[0];
uint32_t tmp;
std::memcpy(&tmp, hbn->h_addr_list[0], sizeof(tmp));
addr->addr = tmp;
return ERR_OK;
}
err_t dns_gethostbyname_addrtype(const char* hostname, ip_addr_t* addr, dns_found_callback found,
void* callback_arg)
{
return dns_gethostbyname_addrtype(hostname, addr, found, callback_arg,
LWIP_DNS_ADDRTYPE_DEFAULT);
}
static struct tcp_pcb mock_tcp_pcb;
tcp_pcb* tcp_new(void)
{