From 4fc2631850466ff38c5152ea6d527f6711e82558 Mon Sep 17 00:00:00 2001 From: ivu-mawi <150349238+ivu-mawi@users.noreply.github.com> Date: Thu, 12 Feb 2026 18:40:19 +0100 Subject: [PATCH] EpollTransport: respect extended keepalive parameters TCP_KEEPIDLE, TCP_KEEPCNT and TCP_KEEPINTVL for clients, not just servers --- .../io/vertx/core/impl/transports/EpollTransport.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/io/vertx/core/impl/transports/EpollTransport.java b/src/main/java/io/vertx/core/impl/transports/EpollTransport.java index 8d32e24d264..9c3cb8b1e72 100644 --- a/src/main/java/io/vertx/core/impl/transports/EpollTransport.java +++ b/src/main/java/io/vertx/core/impl/transports/EpollTransport.java @@ -169,6 +169,16 @@ public void configure(ClientOptionsBase options, boolean domainSocket, Bootstrap bootstrap.option(EpollChannelOption.TCP_USER_TIMEOUT, options.getTcpUserTimeout()); bootstrap.option(EpollChannelOption.TCP_QUICKACK, options.isTcpQuickAck()); bootstrap.option(EpollChannelOption.TCP_CORK, options.isTcpCork()); + + if (options.isTcpKeepAlive() && options.getTcpKeepAliveIdleSeconds() != -1) { + bootstrap.option(EpollChannelOption.TCP_KEEPIDLE, options.getTcpKeepAliveIdleSeconds()); + } + if (options.isTcpKeepAlive() && options.getTcpKeepAliveCount() != -1) { + bootstrap.option(EpollChannelOption.TCP_KEEPCNT, options.getTcpKeepAliveCount()); + } + if (options.isTcpKeepAlive() && options.getTcpKeepAliveIntervalSeconds() != -1) { + bootstrap.option(EpollChannelOption.TCP_KEEPINTVL, options.getTcpKeepAliveIntervalSeconds()); + } } Transport.super.configure(options, domainSocket, bootstrap); }