libicmp/src/recv/core/parse_packet.c
2026-01-26 20:12:42 +01:00

20 lines
523 B
C

#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;
}