From bc786e6e327a5f35afd4286b09a1ce6c89340b85 Mon Sep 17 00:00:00 2001 From: karnem <mikhail.karnevskiy@desy.de> Date: Tue, 16 Apr 2024 10:11:04 +0200 Subject: [PATCH] Set delay for TCP connection to 7 sec. --- common/cpp/src/system_io/system_io_linux_mac.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/cpp/src/system_io/system_io_linux_mac.cpp b/common/cpp/src/system_io/system_io_linux_mac.cpp index 8aba5f769..4aaa1249b 100644 --- a/common/cpp/src/system_io/system_io_linux_mac.cpp +++ b/common/cpp/src/system_io/system_io_linux_mac.cpp @@ -207,13 +207,17 @@ void SystemIO::CollectMessageMetarmationRecursively(const std::string& path, void SystemIO::ApplyNetworkOptions(SocketDescriptor socket_fd, Error* err) const { //TODO: Need to change network layer code, so everything can be NonBlocking int flag = 1; + struct timeval timeout; + timeout.tv_sec = 7; // after 7 seconds connect() will timeout + timeout.tv_usec = 0; + if ( /*(flags = fcntl(socket_fd, F_GETFL, 0)) == -1 || fcntl(socket_fd, F_SETFL, flags | O_NONBLOCK) == -1 ||*/ - setsockopt(socket_fd, SOL_SOCKET, SO_SNDBUF, (char*) &kNetBufferSize, sizeof(kNetBufferSize)) != 0 - || + setsockopt(socket_fd, SOL_SOCKET, SO_SNDBUF, (char*) &kNetBufferSize, sizeof(kNetBufferSize)) != 0 || + setsockopt(socket_fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)) != 0 || setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(int)) != 0 || setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(int)) != 0 || setsockopt(socket_fd, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int)) != 0 -- GitLab