From abf9cf5bec2712465400417cc8232fee2d1cce28 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Tue, 11 Jun 2024 13:33:01 +0200 Subject: TCP stuff --- kernel/network/ipv4.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'kernel/network/ipv4.c') diff --git a/kernel/network/ipv4.c b/kernel/network/ipv4.c index 4fe3799..cceee8e 100644 --- a/kernel/network/ipv4.c +++ b/kernel/network/ipv4.c @@ -84,15 +84,17 @@ void handle_ipv4(const u8 *payload, u32 packet_length) { assert(ipv4_total_length <= packet_length); ipv4_t src_ip; - memcpy(&src_ip, payload + 12, sizeof(u8[4])); + memcpy(&src_ip.d, payload + 12, sizeof(u8[4])); + ipv4_t dst_ip; + memcpy(&dst_ip.d, payload + 16, sizeof(u8[4])); u8 protocol = *(payload + 9); switch (protocol) { case 0x6: - handle_tcp(src_ip, payload + 20, ipv4_total_length - 20); + handle_tcp(src_ip, dst_ip, payload + 20, ipv4_total_length - 20); break; case 0x11: - handle_udp(src_ip, payload + 20, ipv4_total_length - 20); + handle_udp(src_ip, dst_ip, payload + 20, ipv4_total_length - 20); break; default: kprintf("Protocol given in IPv4 header not handeld: %x\n", protocol); -- cgit v1.2.3