mirror of
https://passt.top/passt
synced 2025-01-03 03:15:22 +00:00
tcp: Reset ACK_TO_TAP_DUE flag whenever an ACK isn't needed anymore
We enter the timer handler with the ACK_TO_TAP_DUE flag, call tcp_prepare_flags() with ACK_IF_NEEDED, and realise that we acknowledged everything meanwhile, so we return early, but we also need to reset that flag to avoid unnecessarily scheduling the timer over and over again until more pending data appears. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
6e1e44293e
commit
8ae00f8d5d
4
tcp.c
4
tcp.c
@ -1235,8 +1235,10 @@ int tcp_prepare_flags(const struct ctx *c, struct tcp_tap_conn *conn,
|
||||
int s = conn->sock;
|
||||
|
||||
if (SEQ_GE(conn->seq_ack_to_tap, conn->seq_from_tap) &&
|
||||
!flags && conn->wnd_to_tap)
|
||||
!flags && conn->wnd_to_tap) {
|
||||
conn_flag(c, conn, ~ACK_TO_TAP_DUE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (getsockopt(s, SOL_TCP, TCP_INFO, &tinfo, &sl)) {
|
||||
conn_event(c, conn, CLOSED);
|
||||
|
Loading…
Reference in New Issue
Block a user