IPv4: Don't ACK empty TCP packets

Wireshark was complaining about duplicate ACK's and this was why.
This commit is contained in:
Andreas Kling 2020-02-08 14:09:02 +01:00
parent 48f13f2a81
commit 1037a1d2ba

View file

@ -617,12 +617,9 @@ void handle_tcp(const IPv4Packet& ipv4_packet)
socket->sequence_number());
#endif
bool should_ack = true;
if (payload_size != 0) {
should_ack = socket->did_receive(ipv4_packet.source(), tcp_packet.source_port(), KBuffer::copy(&ipv4_packet, sizeof(IPv4Packet) + ipv4_packet.payload_size()));
if (payload_size) {
if (socket->did_receive(ipv4_packet.source(), tcp_packet.source_port(), KBuffer::copy(&ipv4_packet, sizeof(IPv4Packet) + ipv4_packet.payload_size())))
socket->send_tcp_packet(TCPFlags::ACK);
}
if (should_ack)
socket->send_tcp_packet(TCPFlags::ACK);
}
}