summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <lzhou/zhl@dev3-63.(none)>2007-03-30 15:01:03 +0000
committerunknown <lzhou/zhl@dev3-63.(none)>2007-03-30 15:01:03 +0000
commit76678a48e2df70b9ff3ae44e4de9c8c0e9a743e2 (patch)
treec78244ac77e9a11855619e656d101baa7727d343 /ndb
parent3a6ee28ef454640b4e9cb244060bb16548458712 (diff)
downloadmariadb-git-76678a48e2df70b9ff3ae44e4de9c8c0e9a743e2.tar.gz
BUG#24793 Add SO_KEEPALIVE socket option to avoid cluster nodes keeping dead connections forever.
ndb/src/common/transporter/TCP_Transporter.cpp: Add SO_KEEPALIVE socket option
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/common/transporter/TCP_Transporter.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/ndb/src/common/transporter/TCP_Transporter.cpp b/ndb/src/common/transporter/TCP_Transporter.cpp
index 91a5fb50c57..897bad8b787 100644
--- a/ndb/src/common/transporter/TCP_Transporter.cpp
+++ b/ndb/src/common/transporter/TCP_Transporter.cpp
@@ -155,6 +155,8 @@ TCP_Transporter::initTransporter() {
void
TCP_Transporter::setSocketOptions(){
+ int sockOptKeepAlive = 1;
+
if (setsockopt(theSocket, SOL_SOCKET, SO_RCVBUF,
(char*)&sockOptRcvBufSize, sizeof(sockOptRcvBufSize)) < 0) {
#ifdef DEBUG_TRANSPORTER
@@ -169,6 +171,11 @@ TCP_Transporter::setSocketOptions(){
#endif
}//if
+ if (setsockopt(theSocket, SOL_SOCKET, SO_KEEPALIVE,
+ (char*)&sockOptKeepAlive, sizeof(sockOptKeepAlive)) < 0) {
+ ndbout_c("The setsockopt SO_KEEPALIVE error code = %d", InetErrno);
+ }//if
+
//-----------------------------------------------
// Set the TCP_NODELAY option so also small packets are sent
// as soon as possible