TCP: Update our side's ack number based on the other side's seq number.

This commit is contained in:
Andreas Kling 2019-03-14 11:45:22 +01:00
parent 54e7df0586
commit 8014473918
Notes: sideshowbarker 2024-07-19 15:03:45 +09:00

View File

@ -298,7 +298,14 @@ void handle_tcp(const EthernetFrameHeader& eth, int frame_size)
return;
}
socket->set_tcp_ack_number(socket->tcp_sequence_number() + payload_size);
socket->set_tcp_ack_number(tcp_packet.sequence_number() + payload_size);
kprintf("Got packet with ack_no=%u, seq_no=%u, payload_size=%u, acking it with new ack_no=%u, seq_no=%u\n",
tcp_packet.ack_number(),
tcp_packet.sequence_number(),
payload_size,
socket->tcp_ack_number(),
socket->tcp_sequence_number()
);
socket->send_tcp_packet(*adapter, TCPFlags::ACK);
if (payload_size != 0)