aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--tcp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tcp.c b/tcp.c
index 4cba4b8..1a914c9 100644
--- a/tcp.c
+++ b/tcp.c
@@ -2652,7 +2652,7 @@ static void tcp_timer_one(struct ctx *c, struct tcp_tap_conn *conn,
struct timespec *ts)
{
int ack_tap_ms = timespec_diff_ms(ts, &conn->ts_ack_tap);
- int sock_ms = timespec_diff_ms(ts, &conn->ts_tap);
+ int sock_ms = timespec_diff_ms(ts, &conn->ts_sock);
int tap_ms = timespec_diff_ms(ts, &conn->ts_tap);
switch (conn->state) {
@@ -2693,7 +2693,8 @@ static void tcp_timer_one(struct ctx *c, struct tcp_tap_conn *conn,
}
conn->seq_to_tap = conn->seq_ack_from_tap;
- tcp_data_from_sock(c, conn, ts);
+ if (sock_ms > ACK_TIMEOUT)
+ tcp_data_from_sock(c, conn, ts);
}
}