From ea7838b719e1ef7d427b2016c0ff547ed09be75b Mon Sep 17 00:00:00 2001 From: Staars Date: Sun, 22 Nov 2020 12:49:09 +0100 Subject: [PATCH] fix ping driver for ESP32 --- tasmota/xdrv_38_ping.ino | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tasmota/xdrv_38_ping.ino b/tasmota/xdrv_38_ping.ino index e616a9705..ff9fa309d 100644 --- a/tasmota/xdrv_38_ping.ino +++ b/tasmota/xdrv_38_ping.ino @@ -131,8 +131,11 @@ extern "C" { if ((p->len == p->tot_len) && (p->next == nullptr)) { ip_addr_t ping_target; struct icmp_echo_hdr *iecho; - +#ifdef ESP8266 ping_target.addr = ping->ip; +#else + ping_target.u_addr.ip4.addr = ping->ip; +#endif iecho = (struct icmp_echo_hdr *) p->payload; t_ping_prepare_echo(iecho, ping_size, ping); @@ -167,7 +170,11 @@ extern "C" { // Reveived packet // static uint8_t ICACHE_FLASH_ATTR t_ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *addr) { +#ifdef ESP8266 Ping_t *ping = t_ping_find(addr->addr); +#else + Ping_t *ping = t_ping_find(addr->u_addr.ip4.addr); +#endif if (nullptr == ping) { // unknown source address return 0; // don't eat the packet and ignore it