aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2025-12-04 07:13:44 +0100
committerStefano Brivio <sbrivio@redhat.com>2025-12-08 09:15:36 +0100
commite0f1330287fad6c09bc140ba47914ba4aed90f98 (patch)
treee96c4e543dee011b3d614fbf9d768c08a3b04b3a
parent2b5c9064dbf9f9840d8c44ee7b0bdaebd27b6a8e (diff)
downloadpasst-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar.gz
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar.bz2
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar.lz
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar.xz
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.tar.zst
passt-e0f1330287fad6c09bc140ba47914ba4aed90f98.zip
tcp: Send a duplicate ACK also on complete sendmsg() failure
...in order to trigger a fast retransmit as soon as possible. There's no benefit in forcing the sender to wait for a longer time than that. We already do this on partial failures (short socket writes), but for historical reason not on complete failures. Make these two cases consistent between each other. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--tcp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tcp.c b/tcp.c
index 1f57fda..2ad9764 100644
--- a/tcp.c
+++ b/tcp.c
@@ -2020,7 +2020,7 @@ eintr:
goto eintr;
if (errno == EAGAIN || errno == EWOULDBLOCK) {
- tcp_send_flag(c, conn, ACK_IF_NEEDED);
+ tcp_send_flag(c, conn, ACK | DUP_ACK);
return p->count - idx;
}