[lttng-dev] [PATCH lttng-tools v2] Fix: Use SOL_SOCKET level for SO_KEEPALIVE on all platform
Jonathan Rajotte
jonathan.rajotte-julien at efficios.com
Wed Feb 21 16:59:54 EST 2018
On Linux, COMPAT_SOCKET_LEVEL was set to SOL_TCP instead
of SOL_SOCKET, this resulted in execution of:
setsockopt(..., SOL_TCP, TCP_DEFER_ACCEPT, ...)
Instead of:
setsockopt(..., SOL_SOCKET, SO_KEEPALIVE, ...)
Hence, TCP keep alive was not enabled.
COMPAT_SOCKET_LEVEL is not needed. All platforms supported use the
SOL_SOCKET level for SO_KEEPALIVE.
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
---
src/bin/lttng-relayd/tcp_keep_alive.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/bin/lttng-relayd/tcp_keep_alive.c b/src/bin/lttng-relayd/tcp_keep_alive.c
index 4a2cd9f..469bec3 100644
--- a/src/bin/lttng-relayd/tcp_keep_alive.c
+++ b/src/bin/lttng-relayd/tcp_keep_alive.c
@@ -36,7 +36,6 @@
/* Per-platform definitions of TCP socket options. */
#if defined (__linux__)
-#define COMPAT_SOCKET_LEVEL SOL_TCP
#define COMPAT_TCP_LEVEL SOL_TCP
#define COMPAT_TCP_ABORT_THRESHOLD 0 /* Does not exist on linux. */
#define COMPAT_TCP_KEEPIDLE TCP_KEEPIDLE
@@ -45,7 +44,6 @@
#elif defined (__sun__) /* ! defined (__linux__) */
-#define COMPAT_SOCKET_LEVEL SOL_SOCKET
#define COMPAT_TCP_LEVEL IPPROTO_TCP
#ifdef TCP_KEEPALIVE_THRESHOLD
@@ -65,7 +63,6 @@
#else /* ! defined (__linux__) && ! defined (__sun__) */
-#define COMPAT_SOCKET_LEVEL 0
#define COMPAT_TCP_LEVEL 0
#define COMPAT_TCP_ABORT_THRESHOLD 0
#define COMPAT_TCP_KEEPIDLE 0
@@ -547,7 +544,7 @@ int socket_apply_keep_alive_config(int socket_fd)
goto end;
}
- ret = setsockopt(socket_fd, COMPAT_SOCKET_LEVEL, SO_KEEPALIVE, &val,
+ ret = setsockopt(socket_fd, SOL_SOCKET, SO_KEEPALIVE, &val,
sizeof(val));
if (ret < 0) {
PERROR("setsockopt so_keepalive");
--
2.7.4
More information about the lttng-dev
mailing list