fix tcp_pseudo_checksum: add ntohs() to correctly extract 16-bit IP halfwords from NBO on LE
This commit is contained in:
1 parent
b1e50c2838
commit
f85f2f20fb
1 file changed
+4
-4
@@ -596,10 +596,10 @@ tcp_pseudo_checksum(uint32_t src_ip, uint32_t dst_ip, uint8_t proto, uint16_t tc
|
||||
{
|
||||
uint32_t sum = 0;
|
||||
|
||||
sum += (uint32_t)(uint16_t)((src_ip >> 16) & 0xFFFF);
|
||||
sum += (uint32_t)(uint16_t)(src_ip & 0xFFFF);
|
||||
sum += (uint32_t)(uint16_t)((dst_ip >> 16) & 0xFFFF);
|
||||
sum += (uint32_t)(uint16_t)(dst_ip & 0xFFFF);
|
||||
sum += (uint32_t)ntohs((uint16_t)((src_ip >> 16) & 0xFFFF));
|
||||
sum += (uint32_t)ntohs((uint16_t)(src_ip & 0xFFFF));
|
||||
sum += (uint32_t)ntohs((uint16_t)((dst_ip >> 16) & 0xFFFF));
|
||||
sum += (uint32_t)ntohs((uint16_t)(dst_ip & 0xFFFF));
|
||||
sum += htons((uint16_t)proto);
|
||||
sum += htons(tcp_len);
|
||||
|
||||
|
||||
Reference in new issue
Block a user