refactor: remove unnecessary wrapper functions and redundant checks
This commit is contained in:
parent
e57d43de33
commit
06305696da
3 changed files with 3 additions and 24 deletions
|
|
@ -8,8 +8,6 @@
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
static void write_icmp_header(struct icmp_header *hdr, uint8_t type,
|
static void write_icmp_header(struct icmp_header *hdr, uint8_t type,
|
||||||
uint8_t code, uint32_t header_rest);
|
uint8_t code, uint32_t header_rest);
|
||||||
static void copy_payload(void *dest, const void *src, size_t len);
|
|
||||||
static void compute_and_set_checksum(struct icmp_header *hdr, size_t total_len);
|
|
||||||
/* -------------------- */
|
/* -------------------- */
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -26,12 +24,10 @@ icmp_build_packet(void *buffer, size_t buffer_len, uint8_t type, uint8_t code,
|
||||||
|
|
||||||
write_icmp_header(h, type, code, header_rest);
|
write_icmp_header(h, type, code, header_rest);
|
||||||
if (payload_len > 0)
|
if (payload_len > 0)
|
||||||
{
|
memcpy((unsigned char*)buffer + sizeof(struct icmp_header), payload,
|
||||||
copy_payload((unsigned char*)buffer + sizeof(struct icmp_header),
|
payload_len);
|
||||||
payload, payload_len);
|
|
||||||
}
|
|
||||||
|
|
||||||
compute_and_set_checksum(h, required_len);
|
h->checksum = htons(icmp_checksum(h, required_len));
|
||||||
|
|
||||||
return (int)required_len;
|
return (int)required_len;
|
||||||
}
|
}
|
||||||
|
|
@ -46,16 +42,3 @@ write_icmp_header(struct icmp_header *hdr, uint8_t type, uint8_t code,
|
||||||
hdr->un.gateway = header_rest;
|
hdr->un.gateway = header_rest;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
copy_payload(void *dest, const void *src, size_t len)
|
|
||||||
{
|
|
||||||
if (0 == len)
|
|
||||||
return;
|
|
||||||
memcpy(dest, src, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
compute_and_set_checksum(struct icmp_header *hdr, size_t total_len)
|
|
||||||
{
|
|
||||||
hdr->checksum = htons(icmp_checksum(hdr, total_len));
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,6 @@ icmp_parse_icmp_payload(const void *buffer, size_t buffer_len,
|
||||||
extract_icmp_fields(hdr, type, code);
|
extract_icmp_fields(hdr, type, code);
|
||||||
size_t payload_offset = ip_hdr_len + ICMP_HEADER_SIZE;
|
size_t payload_offset = ip_hdr_len + ICMP_HEADER_SIZE;
|
||||||
|
|
||||||
if (buffer_len < payload_offset)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
*payload_len = buffer_len - payload_offset;
|
*payload_len = buffer_len - payload_offset;
|
||||||
*payload = (const uint8_t *)buffer + payload_offset;
|
*payload = (const uint8_t *)buffer + payload_offset;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ recv_build_reply(icmp_reply_t *reply, uint8_t type, uint8_t code,
|
||||||
reply->payload = (void *)payload;
|
reply->payload = (void *)payload;
|
||||||
reply->payload_len = payload_len;
|
reply->payload_len = payload_len;
|
||||||
reply->ip_payload = (void *)((const uint8_t *)buffer + ip_hdr_len);
|
reply->ip_payload = (void *)((const uint8_t *)buffer + ip_hdr_len);
|
||||||
reply->ip_payload_len = 0;
|
|
||||||
if (icmp_get_time(&reply->timestamp) < 0)
|
if (icmp_get_time(&reply->timestamp) < 0)
|
||||||
{
|
{
|
||||||
reply->timestamp.tv_sec = 0;
|
reply->timestamp.tv_sec = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue