Skip to content

Commit 95d6a0a

Browse files
committed
Merge remote-tracking branch 'upstream/master' into fix-crash-on-fin-v2
2 parents 9a4a58a + 4836720 commit 95d6a0a

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/AsyncTCP.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,15 @@ static void _tcp_error(void * arg, int8_t err) {
300300

301301
static void _tcp_dns_found(const char * name, struct ip_addr * ipaddr, void * arg) {
302302
lwip_event_packet_t * e = (lwip_event_packet_t *)malloc(sizeof(lwip_event_packet_t));
303+
//ets_printf("+DNS: name=%s ipaddr=0x%08x arg=%x\n", name, ipaddr, arg);
303304
e->event = LWIP_TCP_DNS;
304305
e->arg = arg;
305306
e->dns.name = name;
306-
memcpy(&e->dns.addr, ipaddr, sizeof(struct ip_addr));
307+
if (ipaddr) {
308+
memcpy(&e->dns.addr, ipaddr, sizeof(struct ip_addr));
309+
} else {
310+
memset(&e->dns.addr, 0, sizeof(e->dns.addr));
311+
}
307312
if (!_send_async_event(&e)) {
308313
free((void*)(e));
309314
}
@@ -942,7 +947,7 @@ int8_t AsyncClient::_poll(tcp_pcb* pcb){
942947
}
943948

944949
void AsyncClient::_dns_found(struct ip_addr *ipaddr){
945-
if(ipaddr){
950+
if(ipaddr && ipaddr->u_addr.ip4.addr){
946951
connect(IPAddress(ipaddr->u_addr.ip4.addr), _connect_port);
947952
} else {
948953
if(_error_cb) {

0 commit comments

Comments
 (0)