diff --git a/src/lwip_tcp/lwip_tcp_out.c b/src/lwip_tcp/lwip_tcp_out.c index 8ded4d5f..865ffd90 100644 --- a/src/lwip_tcp/lwip_tcp_out.c +++ b/src/lwip_tcp/lwip_tcp_out.c @@ -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);