EtherLib/prefab/packet_parsers/tcp_udp_common.c
Wiesner András 8676a392e5 - TCP basic implementation added
- TCPWindow added
- Checksum bug fixed (again)
- CBD introduced
- ConnBlock modified
- PackSieve report funtionality modified to decrease memory consumption
2023-01-30 11:04:46 +01:00

14 lines
440 B
C

#include <stdbool.h>
#include "tcp_udp_common.h"
#include "../../utils.h"
uint16_t tcp_udp_checksum(const IPv4PseudoHeader *pseudoHeader, const uint8_t * hdr, uint32_t size) {
uint32_t sum = chksum((const uint8_t *) pseudoHeader, sizeof(IPv4PseudoHeader), true) + chksum(hdr, size, true);
while (sum >> 16) {
sum = (sum & 0xFFFF) + (sum >> 16);
}
uint16_t sum16 = sum;
sum16 = htons(sum16);
return sum16;
}