From 52e30a99b4a90a31c305f59663b19569a7be45a3 Mon Sep 17 00:00:00 2001
From: Chris Broekema <broekema@astron.nl>
Date: Fri, 9 Feb 2007 12:10:25 +0000
Subject: [PATCH] BugID: 1011 Don't allow the kernel buffers to be set on
 BlueGene (since it doesn't implement setsockopt())

---
 LCS/Transport/src/TH_Socket.cc | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/LCS/Transport/src/TH_Socket.cc b/LCS/Transport/src/TH_Socket.cc
index 792049bc784..0b3468dc44a 100644
--- a/LCS/Transport/src/TH_Socket.cc
+++ b/LCS/Transport/src/TH_Socket.cc
@@ -350,7 +350,7 @@ bool TH_Socket::initBuffers(int recvBufferSize, int sendBufferSize) {
   else socketFD = itsDataSocket->getSid();
   
   if (recvBufferSize != -1) {
-#ifdef __linux__
+#if defined __linux__  && !defined HAVE_BGL
     int name[] = { CTL_NET, NET_CORE, NET_CORE_RMEM_MAX };
     int value;
     size_t valueSize = sizeof(value);
@@ -362,15 +362,16 @@ bool TH_Socket::initBuffers(int recvBufferSize, int sendBufferSize) {
 	LOG_WARN("TH_Socket: could not increase max socket receive buffer");
       }
     }
-#endif
     // now set the buffer for our socket
     if (setsockopt(socketFD, SOL_SOCKET, SO_RCVBUF, &recvBufferSize, sizeof(recvBufferSize)) < 0)
     {
       LOG_WARN("TH_Socket: receive buffer size could not be set, default size will be used.");
     }
+#endif
+
   }    
   if (sendBufferSize != -1) {
-#ifdef __linux__
+#if defined __linux__ && !defined HAVE_BGL
     int name[] = { CTL_NET, NET_CORE, NET_CORE_WMEM_MAX };
     int value;
     size_t valueSize = sizeof(value);
@@ -382,11 +383,12 @@ bool TH_Socket::initBuffers(int recvBufferSize, int sendBufferSize) {
 	LOG_WARN("TH_Socket: could not increase max socket send buffer");
       }
     }
-#endif
-    if (setsockopt(socketFD, SOL_SOCKET, SO_RCVBUF, &sendBufferSize, sizeof(sendBufferSize)) < 0)
+    if (setsockopt(socketFD, SOL_SOCKET, SO_SNDBUF, &sendBufferSize, sizeof(sendBufferSize)) < 0)
     {
       LOG_WARN("TH_Socket: send buffer size could not be set, default size will be used.");
     }
+#endif
+
   }    
   return true;
 }
-- 
GitLab