This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/master by this push:
new a69d9b197 [util] make Socket::SetTcpKeepAlive() available on macOS
a69d9b197 is described below
commit a69d9b197a4ef1290e6931a75bd28257d949b315
Author: Alexey Serbin <[email protected]>
AuthorDate: Fri Dec 8 18:04:10 2023 -0800
[util] make Socket::SetTcpKeepAlive() available on macOS
Change-Id: I52c6e48181480415fc5ebc1b804aa21d0491b584
Reviewed-on: http://gerrit.cloudera.org:8080/20765
Tested-by: Alexey Serbin <[email protected]>
Reviewed-by: Mahesh Reddy <[email protected]>
Reviewed-by: Abhishek Chennaka <[email protected]>
---
src/kudu/util/net/socket.cc | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/kudu/util/net/socket.cc b/src/kudu/util/net/socket.cc
index 427429688..1ce2da66d 100644
--- a/src/kudu/util/net/socket.cc
+++ b/src/kudu/util/net/socket.cc
@@ -591,11 +591,15 @@ Status Socket::SetTimeout(int opt, const char* optname,
const MonoDelta& timeout
}
Status Socket::SetTcpKeepAlive(int idle_time_s, int retry_time_s, int
num_retries) {
-#if defined(__linux__)
static const char* const err_string = "failed to set socket option $0 to $1";
DCHECK_GT(idle_time_s, 0);
+#if defined(__linux__)
RETURN_NOT_OK_PREPEND(SetSockOpt(IPPROTO_TCP, TCP_KEEPIDLE, idle_time_s),
Substitute(err_string, "TCP_KEEPIDLE", idle_time_s));
+#else
+ RETURN_NOT_OK_PREPEND(SetSockOpt(IPPROTO_TCP, TCP_KEEPALIVE, idle_time_s),
+ Substitute(err_string, "TCP_KEEPALIVE", idle_time_s));
+#endif
DCHECK_GT(retry_time_s, 0);
RETURN_NOT_OK_PREPEND(SetSockOpt(IPPROTO_TCP, TCP_KEEPINTVL, retry_time_s),
Substitute(err_string, "TCP_KEEPINTVL", retry_time_s));
@@ -604,7 +608,6 @@ Status Socket::SetTcpKeepAlive(int idle_time_s, int
retry_time_s, int num_retrie
Substitute(err_string, "TCP_KEEPCNT", num_retries));
RETURN_NOT_OK_PREPEND(SetSockOpt(SOL_SOCKET, SO_KEEPALIVE, 1),
"failed to enable TCP KeepAlive socket option");
-#endif
return Status::OK();
}