aboutsummaryrefslogtreecommitdiff
path: root/analyzer/utils/pcap.c
diff options
context:
space:
mode:
authorMosder <xmosder12@gmail.com>2026-07-06 10:06:10 +0200
committerMosder <xmosder12@gmail.com>2026-07-06 10:06:10 +0200
commitf57066460f7c914b07a612d037eb5e57f617d5b2 (patch)
tree703a7b21c24fa1ab002349a6979da53158d161b2 /analyzer/utils/pcap.c
parentf1d1feabec428bf9ffc2c786d28ce7cc95725d48 (diff)
feat: added basic structures for fight results parsing and base functionallity of finding only the necessary data. Still need to do tcp stream reassembly and the actual parsing of the data.
Diffstat (limited to 'analyzer/utils/pcap.c')
-rw-r--r--analyzer/utils/pcap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/analyzer/utils/pcap.c b/analyzer/utils/pcap.c
index cdefba7..5e9b611 100644
--- a/analyzer/utils/pcap.c
+++ b/analyzer/utils/pcap.c
@@ -4,7 +4,7 @@
#include <netinet/ip.h>
#include <netinet/tcp.h>
-const unsigned char *get_payload_from_packet(const unsigned char *packet, const struct pcap_pkthdr *packet_data, int *payload_len) {
+const unsigned char *get_payload_from_packet(const unsigned char *packet, const struct pcap_pkthdr *packet_data, int *payload_len, uint32_t *tcp_seq) {
// get Ethernet header
const struct ether_header *eth_header = (const struct ether_header *)packet;
int eth_header_len = sizeof(struct ether_header);
@@ -29,6 +29,9 @@ const unsigned char *get_payload_from_packet(const unsigned char *packet, const
const struct tcphdr *tcp_header = (const struct tcphdr *)(packet + eth_header_len + ip_header_len);
int tcp_header_len = tcp_header->th_off * 4;
+ // get TCP sequence number
+ *tcp_seq = ntohl(tcp_header->seq);
+
// get payload
int total_header_len = eth_header_len + ip_header_len + tcp_header_len;
*payload_len = packet_data->caplen - total_header_len;