summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorzhuzhenjun <[email protected]>2023-10-10 17:14:34 +0800
committerzhuzhenjun <[email protected]>2023-10-10 17:14:34 +0800
commitf6af0204eb2d8a02b4c434148faff9873a2976ce (patch)
treeefa0c17c44398cc18c4559ffa433efb4104befd5 /example
parentf203d15fae598b7ba6645e0297f15c60e2006c1f (diff)
src: linux/*.h -> netinet/*.h
Diffstat (limited to 'example')
-rw-r--r--example/osfp_example.c46
1 files changed, 15 insertions, 31 deletions
diff --git a/example/osfp_example.c b/example/osfp_example.c
index 62d08df..146587e 100644
--- a/example/osfp_example.c
+++ b/example/osfp_example.c
@@ -4,12 +4,6 @@
#include <unistd.h>
#include <time.h>
-#include <linux/in.h>
-#include <linux/if_ether.h>
-#include <linux/ip.h>
-#include <linux/ipv6.h>
-#include <linux/tcp.h>
-
#include <sys/socket.h>
#include <pcap.h>
@@ -52,14 +46,6 @@ typedef struct Address_ {
#define addr_data8 address.address_un_data8
#define addr_in6addr address.address_un_in6
-#define COPY_ADDRESS(a, b) do { \
- (b)->family = (a)->family; \
- (b)->addr_data32[0] = (a)->addr_data32[0]; \
- (b)->addr_data32[1] = (a)->addr_data32[1]; \
- (b)->addr_data32[2] = (a)->addr_data32[2]; \
- (b)->addr_data32[3] = (a)->addr_data32[3]; \
- } while (0)
-
/* Set the IPv4 addresses into the Addrs of the Packet.
* Make sure p->ip4h is initialized and validated.
*
@@ -85,18 +71,18 @@ typedef struct Address_ {
* Make sure p->ip6h is initialized and validated. */
#define SET_IPV6_SRC_ADDR(p, a) do { \
(a)->family = AF_INET6; \
- (a)->addr_data32[0] = (p)->ip6h->saddr.s6_addr32[0]; \
- (a)->addr_data32[1] = (p)->ip6h->saddr.s6_addr32[1]; \
- (a)->addr_data32[2] = (p)->ip6h->saddr.s6_addr32[2]; \
- (a)->addr_data32[3] = (p)->ip6h->saddr.s6_addr32[3]; \
+ (a)->addr_data32[0] = (p)->ip6h->ip6_src.__in6_u.__u6_addr32[0]; \
+ (a)->addr_data32[1] = (p)->ip6h->ip6_src.__in6_u.__u6_addr32[1]; \
+ (a)->addr_data32[2] = (p)->ip6h->ip6_src.__in6_u.__u6_addr32[2]; \
+ (a)->addr_data32[3] = (p)->ip6h->ip6_src.__in6_u.__u6_addr32[3]; \
} while (0)
#define SET_IPV6_DST_ADDR(p, a) do { \
(a)->family = AF_INET6; \
- (a)->addr_data32[0] = (p)->ip6h->daddr.s6_addr32[0]; \
- (a)->addr_data32[1] = (p)->ip6h->daddr.s6_addr32[1]; \
- (a)->addr_data32[2] = (p)->ip6h->daddr.s6_addr32[2]; \
- (a)->addr_data32[3] = (p)->ip6h->daddr.s6_addr32[3]; \
+ (a)->addr_data32[0] = (p)->ip6h->ip6_dst.__in6_u.__u6_addr32[0]; \
+ (a)->addr_data32[1] = (p)->ip6h->ip6_dst.__in6_u.__u6_addr32[1]; \
+ (a)->addr_data32[2] = (p)->ip6h->ip6_dst.__in6_u.__u6_addr32[2]; \
+ (a)->addr_data32[3] = (p)->ip6h->ip6_dst.__in6_u.__u6_addr32[3]; \
} while (0)
#define TCP_GET_RAW_SRC_PORT(tcph) ntohs((tcph)->source)
@@ -131,7 +117,7 @@ typedef struct Address_ {
typedef struct Packet_ {
struct ethhdr *ethh;
struct iphdr *iph;
- struct ipv6hdr *ip6h;
+ struct ip6_hdr *ip6h;
struct tcphdr *tcph;
char srcip[46];
@@ -268,15 +254,15 @@ int packet_decode_ipv6(Packet *p, const unsigned char *data, unsigned int len)
int ret = -1;
unsigned short ip6_payload_len;
unsigned char ip6_nexthdr;
- struct ipv6hdr *ip6h;
+ struct ip6_hdr *ip6h;
if (len < IPV6_HEADER_LEN) {
goto exit;
}
- ip6h = (struct ipv6hdr *)data;
- ip6_payload_len = ntohs(ip6h->payload_len);
- ip6_nexthdr = ip6h->nexthdr;
+ ip6h = (struct ip6_hdr *)data;
+ ip6_payload_len = ntohs(ip6h->ip6_ctlun.ip6_un1.ip6_un1_plen);
+ ip6_nexthdr = ip6h->ip6_ctlun.ip6_un1.ip6_un1_nxt;
if (len < IPV6_HEADER_LEN + ip6_payload_len) {
goto exit;
@@ -443,7 +429,7 @@ void example_detect(struct osfp_db *osfp_db, Packet *p)
char str_buf[1024];
//unsigned char *iph = (unsigned char *)(p->iph != NULL ? (void *)p->iph : (void *)p->ip6h);
struct iphdr *iph;
- struct ipv6hdr *ip6h;
+ struct ip6_hdr *ip6h;
struct tcphdr *tcph;
unsigned int tcph_len;
struct osfp_result *result = NULL;
@@ -451,7 +437,7 @@ void example_detect(struct osfp_db *osfp_db, Packet *p)
printf("Example ipv4 header detect: --------------------------\n");
iph = (struct iphdr *)p->iph;
- ip6h = (struct ipv6hdr *)p->ip6h;
+ ip6h = (struct ip6_hdr *)p->ip6h;
tcph = (struct tcphdr *)p->tcph;
tcph_len = tcph->doff << 2;
@@ -641,8 +627,6 @@ int main(int argc, char *argv[])
exit(1);
}
- osfp_score_db_debug_print(osfp_db->score_db);
-
// loop
while (1) {
int r = pcap_dispatch(pcap_handle, 0, (pcap_handler)process_packet, (void*)osfp_db);