From 03e8e85a220e0699d22c92fda60dae08ce5b9b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Sat, 2 Nov 2019 13:26:51 +0200 Subject: [PATCH] Enable SO_KEEPALIVE This hopefully prevents unnecessary TCP timeouts. --- server/core/utils.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/core/utils.cc b/server/core/utils.cc index f3a2bfce6..c1acce241 100644 --- a/server/core/utils.cc +++ b/server/core/utils.cc @@ -950,11 +950,15 @@ bool configure_network_socket(int so, int type) { int one = 1; - if (type != AF_UNIX && setsockopt(so, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) != 0) + if (type != AF_UNIX) { - MXS_ERROR("Failed to set socket option: %d, %s.", errno, mxs_strerror(errno)); - mxb_assert(!true); - return false; + if (setsockopt(so, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) != 0 + || setsockopt(so, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof(one)) != 0) + { + MXS_ERROR("Failed to set socket option: %d, %s.", errno, mxs_strerror(errno)); + mxb_assert(!true); + return false; + } } return setnonblocking(so) == 0;