#include "internal/icmp_recv.h" #include "internal/icmp_packet_internal.h" int recv_parse_packet(const void *buffer, size_t buffer_len, uint8_t *type, uint8_t *code, uint8_t *ttl, struct in_addr *src_addr, const void **payload, size_t *payload_len, size_t *ip_hdr_len) { if (icmp_parse_ip_header(buffer, buffer_len, ttl, src_addr, ip_hdr_len) < 0) return -1; if (icmp_parse_icmp_payload(buffer, buffer_len, *ip_hdr_len, type, code, payload, payload_len) < 0) return -1; return 0; }