From 8b9c40248a368a5a1c5cb6a894c841a8f90a2d7b Mon Sep 17 00:00:00 2001 From: volth Date: Mon, 19 Oct 2015 18:29:30 +0000 Subject: [PATCH 1/2] Increase TCP_USER_TIMEOUT to avoid disconnections. TCP_USER_TIMEOUT value is too small, it is only 4 seconds. That causes random disconnections reported in the bug report https://github.com/FreeRDP/FreeRDP/issues/2802 This patch should fix the bug report https://github.com/FreeRDP/FreeRDP/issues/2802 --- libfreerdp/core/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index 24bbcd05d..c4af4c295 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -1027,7 +1027,7 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) #endif #ifdef TCP_USER_TIMEOUT - optval = 4000; + optval = 60000; optlen = sizeof(optval); if (setsockopt(sockfd, SOL_TCP, TCP_USER_TIMEOUT, (void*) &optval, optlen) < 0) From be02849ecefeae53af92a0273a9bd7349e881ad9 Mon Sep 17 00:00:00 2001 From: Bernhard Miklautz Date: Tue, 23 Feb 2016 15:34:58 +0100 Subject: [PATCH 2/2] tcp: set the timeout to 9s Set the TCP_USER_TIMEOUT to 9s as suggested by @giox069. See #3015 for details --- libfreerdp/core/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index c4af4c295..1a6cff273 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -1027,7 +1027,7 @@ BOOL freerdp_tcp_set_keep_alive_mode(int sockfd) #endif #ifdef TCP_USER_TIMEOUT - optval = 60000; + optval = 9000; optlen = sizeof(optval); if (setsockopt(sockfd, SOL_TCP, TCP_USER_TIMEOUT, (void*) &optval, optlen) < 0)