fix ping driver for ESP32

This commit is contained in:
Staars 2020-11-22 12:49:09 +01:00
parent 3f0b879b77
commit ea7838b719

View File

@ -131,8 +131,11 @@ extern "C" {
if ((p->len == p->tot_len) && (p->next == nullptr)) { if ((p->len == p->tot_len) && (p->next == nullptr)) {
ip_addr_t ping_target; ip_addr_t ping_target;
struct icmp_echo_hdr *iecho; struct icmp_echo_hdr *iecho;
#ifdef ESP8266
ping_target.addr = ping->ip; ping_target.addr = ping->ip;
#else
ping_target.u_addr.ip4.addr = ping->ip;
#endif
iecho = (struct icmp_echo_hdr *) p->payload; iecho = (struct icmp_echo_hdr *) p->payload;
t_ping_prepare_echo(iecho, ping_size, ping); t_ping_prepare_echo(iecho, ping_size, ping);
@ -167,7 +170,11 @@ extern "C" {
// Reveived packet // 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) { 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); 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 if (nullptr == ping) { // unknown source address
return 0; // don't eat the packet and ignore it return 0; // don't eat the packet and ignore it