diff --git a/golpe b/golpe index f76f58f..72a0160 160000 --- a/golpe +++ b/golpe @@ -1 +1 @@ -Subproject commit f76f58fbbb58dfc90386a2b6f409e77409188f0e +Subproject commit 72a016041fdf99fd1cf3aec7b539ff8bf3d33126 diff --git a/golpe.yaml b/golpe.yaml index eae089d..ef07d4c 100644 --- a/golpe.yaml +++ b/golpe.yaml @@ -92,6 +92,8 @@ config: - name: relay__autoPingSeconds default: 55 noReload: true + - name: relay__enableTcpKeepalive + default: false - name: relay__queryTimesliceBudgetMicroseconds default: 10000 - name: relay__maxFilterLimit diff --git a/src/RelayWebsocket.cpp b/src/RelayWebsocket.cpp index 7dace0a..f7adc50 100644 --- a/src/RelayWebsocket.cpp +++ b/src/RelayWebsocket.cpp @@ -82,7 +82,7 @@ void RelayServer::runWebsocket(ThreadPool::Thread &thr) { ws->setUserData((void*)c); connIdToConnection.emplace(connId, c); - { + if (cfg().relay__enableTcpKeepalive) { int optval = 1; if (setsockopt(ws->getFd(), SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval))) { LW << "Failed to enable TCP keepalive: " << strerror(errno);