Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
Diff: modules/pico_icmp4.c
- Revision:
- 46:c35c84e301e0
- Parent:
- 29:1a47b7151851
--- a/modules/pico_icmp4.c Tue Jul 23 13:22:24 2013 +0000 +++ b/modules/pico_icmp4.c Thu Jul 25 08:43:55 2013 +0000 @@ -44,16 +44,10 @@ struct pico_icmp4_hdr *hdr = (struct pico_icmp4_hdr *) f->transport_hdr; if (hdr->type == PICO_ICMP_ECHO) { hdr->type = PICO_ICMP_ECHOREPLY; - /* Ugly, but the best way to get ICMP data size here. */ - f->transport_len = f->buffer_len - PICO_SIZE_IP4HDR; - if (f->dev->eth) - f->transport_len -= PICO_SIZE_ETHHDR; - pico_icmp4_checksum(f); - f->net_hdr = f->transport_hdr - PICO_SIZE_IP4HDR; - f->start = f->net_hdr; - f->len = f->buffer_len; + /* outgoing frames require a f->len without the ethernet header len */ if (f->dev->eth) f->len -= PICO_SIZE_ETHHDR; + pico_icmp4_checksum(f); pico_ipv4_rebound(f); } else if (hdr->type == PICO_ICMP_UNREACH) { f->net_hdr = f->transport_hdr + PICO_ICMPHDR_UN_SIZE;