From d06a39d44741355e96ee96d8f760b995f35abaed Mon Sep 17 00:00:00 2001 From: David Timber Date: Mon, 14 Sep 2020 19:11:36 +0930 Subject: * Remove includes --- src/inet.h | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'src/inet.h') diff --git a/src/inet.h b/src/inet.h index 8e593f5..b7e384b 100644 --- a/src/inet.h +++ b/src/inet.h @@ -1,22 +1,50 @@ +#pragma once #include #include #include -// TODO: don't use these -#include -#include +#include "protocol.h" +// Workaround for header issues in uClibc +typedef struct prne_iphdr4 prne_iphdr4_t; +typedef struct prne_iphdr6 prne_iphdr6_t; + +struct prne_iphdr4 { + uint8_t saddr[4]; + uint8_t daddr[4]; + uint16_t total_len; + uint16_t id; + uint8_t ttl; + uint8_t protocol; + uint8_t ihl; +}; + +struct prne_iphdr6 { + uint8_t saddr[16]; + uint8_t daddr[16]; + uint32_t flow_label; + uint16_t payload_len; + uint8_t next_hdr; + uint8_t hop_limit; +}; + void prne_netmask_from_cidr (uint8_t *out, size_t cidr); uint16_t prne_calc_tcp_chksum4 ( - const struct iphdr *ih, + const prne_iphdr4_t *ih, const uint8_t *th, size_t th_len, const uint8_t *data, size_t data_len); uint16_t prne_calc_tcp_chksum6 ( - const struct ipv6hdr *ih, + const prne_iphdr6_t *ih, const uint8_t *th, size_t th_len, const uint8_t *data, size_t data_len); + +void prne_ser_iphdr4 (uint8_t *mem, const prne_iphdr4_t *in); +void prne_ser_iphdr6 (uint8_t *mem, const prne_iphdr6_t *in); + +void prne_dser_iphdr4 (const uint8_t *data, prne_iphdr4_t *out); +void prne_dser_iphdr6 (const uint8_t *data, prne_iphdr6_t *out); -- cgit