Merge pull request #9946 from Staars/ping32

fix ping driver for ESP32
This commit is contained in:
Theo Arends 2020-11-22 13:59:16 +01:00 committed by GitHub
commit 5defd5e158
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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