#include "internal/icmp_recv.h" #include "internal/icmp_utils.h" #include void recv_build_reply(icmp_reply_t *reply, uint8_t type, uint8_t code, uint8_t ttl, struct in_addr src_addr, const void *payload, size_t payload_len, const void *buffer, size_t ip_hdr_len) { memset(reply, 0, sizeof(icmp_reply_t)); reply->type = type; reply->code = code; reply->from = src_addr; reply->ttl = ttl; reply->payload = (void *)payload; reply->payload_len = payload_len; reply->ip_payload = (void *)((const uint8_t *)buffer + ip_hdr_len); if (icmp_get_time(&reply->timestamp) < 0) { reply->timestamp.tv_sec = 0; reply->timestamp.tv_nsec = 0; } }