non-kernel patches

ooo bzr diff -r1 -pa/:b/ ndb/src/ |di -x'\S*(ndb/src/[km]|portli)\S+' -m'\S+\.[hc]c?(pp)?(\.in)?'
--- a/ndb/src/common/debugger/signaldata/DictTabInfo.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/debugger/signaldata/DictTabInfo.cpp	2007-09-08 10:50:30 +0000
@@ -15,6 +15,7 @@
 
 #include <signaldata/DictTabInfo.hpp>
 #include <ndb_limits.h>
+#include <mysql_com.h>
 
 //static 
 const

--- a/ndb/src/common/logger/Logger.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/logger/Logger.cpp	2007-09-16 12:55:19 +0000
@@ -26,6 +26,7 @@
 #include <SysLogHandler.hpp>
 #endif
 
+#define snprintf BaseString::snprintf
 //
 // PUBLIC
 //

--- a/ndb/src/common/mgmcommon/ConfigRetriever.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/mgmcommon/ConfigRetriever.cpp	2007-09-06 13:30:49 +0000
@@ -271,7 +271,7 @@
       !SocketServer::tryBind(0,hostname)) {
     BaseString::snprintf(buf, 255, "Config hostname(%s) don't match a local interface,"
 	     " tried to bind, error = %d - %s",
-	     hostname, errno, strerror(errno));
+	     hostname, socket_errno, strerror(socket_errno));
     setError(CR_ERROR, buf);
     return false;
   }

--- a/ndb/src/common/transporter/TransporterRegistry.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/transporter/TransporterRegistry.cpp	2007-09-06 13:30:49 +0000
@@ -895,7 +895,7 @@
   maxSocketValue++; 
   
   tcpReadSelectReply = select(maxSocketValue, &tcpReadset, 0, 0, &timeout);  
-  if(false && tcpReadSelectReply == -1 && errno == EINTR)
+  if(false && tcpReadSelectReply == -1 && socket_errno == SOCKET_EINTR)
     ndbout_c("woke-up by signal");
 
 #ifdef NDB_WIN32

--- a/ndb/src/common/util/NdbOut.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/util/NdbOut.cpp	2007-09-08 12:08:12 +0000
@@ -84,10 +84,12 @@
   return *this;
 }
 
+NdbOutF ndbout_svc;
 NdbOut::NdbOut(OutputStream & out) 
   : m_out(& out)
 {
   isHex = 0;
+  ndbout_svc = 0;
 }
 
 NdbOut::~NdbOut()
@@ -118,8 +120,7 @@
   va_end(ap);
 }
 
-extern "C"
-void 
+extern "C" void 
 ndbout_c(const char * fmt, ...){
   va_list ap;
   char buf[1000];
@@ -127,7 +128,8 @@
   va_start(ap, fmt);
   if (fmt != 0)
     BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap);
-  ndbout << buf << endl;
+  if(!ndbout_svc||(*ndbout_svc)(buf))
+    ndbout << buf << endl;
   va_end(ap);
 }
 

--- a/ndb/src/common/util/SocketClient.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/util/SocketClient.cpp	2007-09-10 03:09:17 +0000
@@ -19,6 +19,7 @@
 
 #include <SocketClient.hpp>
 #include <SocketAuthenticator.hpp>
+#include <my_net.h>
 
 SocketClient::SocketClient(const char *server_name, unsigned short port, SocketAuthenticator *sa)
 {
@@ -78,14 +79,14 @@
   // Convert ip address presentation format to numeric format
   if (Ndb_getInAddr(&local.sin_addr, bindaddress))
   {
-    return errno ? errno : EINVAL;
+    return socket_errno ? socket_errno : EINVAL;
   }
   
   const int on = 1;
   if (setsockopt(m_sockfd, SOL_SOCKET, SO_REUSEADDR, 
 		 (const char*)&on, sizeof(on)) == -1) {
 
-    int ret = errno;
+    int ret = socket_errno;
     NDB_CLOSE_SOCKET(m_sockfd);
     m_sockfd= NDB_INVALID_SOCKET;
     return ret;
@@ -93,7 +94,7 @@
   
   if (::bind(m_sockfd, (struct sockaddr*)&local, sizeof(local)) == -1) 
   {
-    int ret = errno;
+    int ret = socket_errno;
     NDB_CLOSE_SOCKET(m_sockfd);
     m_sockfd= NDB_INVALID_SOCKET;
     return ret;
@@ -105,9 +106,9 @@
 NDB_SOCKET_TYPE
 SocketClient::connect(const char *toaddress, unsigned short toport)
 {
-  fd_set rset, wset;
+  fd_set rset, wset, eset;
   struct timeval tval;
-  int r;
+  int r, err;
   bool use_timeout;
   SOCKOPT_OPTLEN_TYPE len;
   int flags;
@@ -136,15 +137,15 @@
       return NDB_INVALID_SOCKET;
   }
 
-  flags= fcntl(m_sockfd, F_GETFL, 0);
-  fcntl(m_sockfd, F_SETFL, flags | O_NONBLOCK);
+  my_setsocknonblock(m_sockfd);
 
   r= ::connect(m_sockfd, (struct sockaddr*) &m_servaddr, sizeof(m_servaddr));
 
   if (r == 0)
     goto done; // connected immediately.
 
-  if (r < 0 && (errno != EINPROGRESS)) {
+  err = socket_errno;
+  if (r < 0 && NONBLOCKERR(err)) {
     NDB_CLOSE_SOCKET(m_sockfd);
     m_sockfd= NDB_INVALID_SOCKET;
     return NDB_INVALID_SOCKET;
@@ -152,12 +153,14 @@
 
   FD_ZERO(&rset);
   FD_SET(m_sockfd, &rset);
+  FD_ZERO(&eset);
+  FD_SET(m_sockfd, &eset);
   wset= rset;
   tval.tv_sec= m_connect_timeout_sec;
   tval.tv_usec= 0;
-  use_timeout= m_connect_timeout_sec;
+  use_timeout= m_connect_timeout_sec != 0;
 
-  if ((r= select(m_sockfd+1, &rset, &wset, NULL,
+  if ((r= select(m_sockfd+1, &rset, &wset, &eset,
                  use_timeout? &tval : NULL)) == 0)
   {
     NDB_CLOSE_SOCKET(m_sockfd);
@@ -171,6 +174,7 @@
     if (getsockopt(m_sockfd, SOL_SOCKET, SO_ERROR, &r, &len) < 0 || r)
     {
       // Solaris got an error... different than others
+      err = socket_errno;
       NDB_CLOSE_SOCKET(m_sockfd);
       m_sockfd= NDB_INVALID_SOCKET;
       return NDB_INVALID_SOCKET;
@@ -178,6 +182,7 @@
   }
   else
   {
+    err = socket_errno;
     // select error, probably m_sockfd not set.
     NDB_CLOSE_SOCKET(m_sockfd);
     m_sockfd= NDB_INVALID_SOCKET;
@@ -185,7 +190,7 @@
   }
 
 done:
-  fcntl(m_sockfd, F_SETFL, flags);
+  my_setsocknonblock(m_sockfd);
 
   if (m_auth) {
     if (!m_auth->client_authenticate(m_sockfd))

--- a/ndb/src/common/util/SocketServer.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/util/SocketServer.cpp	2007-09-06 13:30:49 +0000
@@ -103,7 +103,7 @@
   const NDB_SOCKET_TYPE sock  = socket(AF_INET, SOCK_STREAM, 0);
   if (sock == NDB_INVALID_SOCKET) {
     DBUG_PRINT("error",("socket() - %d - %s",
-			errno, strerror(errno)));
+			socket_errno, strerror(socket_errno)));
     DBUG_RETURN(false);
   }
   
@@ -113,14 +113,14 @@
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, 
 		 (const char*)&on, sizeof(on)) == -1) {
     DBUG_PRINT("error",("getsockopt() - %d - %s",
-			errno, strerror(errno)));
+			socket_errno, strerror(socket_errno)));
     NDB_CLOSE_SOCKET(sock);
     DBUG_RETURN(false);
   }
   
   if (bind(sock, (struct sockaddr*) &servaddr, sizeof(servaddr)) == -1) {
     DBUG_PRINT("error",("bind() - %d - %s",
-			errno, strerror(errno)));
+			socket_errno, strerror(socket_errno)));
     NDB_CLOSE_SOCKET(sock);
     DBUG_RETURN(false);
   }
@@ -129,7 +129,7 @@
   SOCKET_SIZE_TYPE sock_len = sizeof(servaddr);
   if(getsockname(sock,(struct sockaddr*)&servaddr,&sock_len)<0) {
     ndbout_c("An error occurred while trying to find out what"
-	     " port we bound to. Error: %s",strerror(errno));
+	     " port we bound to. Error: %s",strerror(socket_errno));
     NDB_CLOSE_SOCKET(sock);
     DBUG_RETURN(false);
   }
@@ -137,7 +137,7 @@
   DBUG_PRINT("info",("bound to %u",ntohs(servaddr.sin_port)));
   if (listen(sock, m_maxSessions > 32 ? 32 : m_maxSessions) == -1){
     DBUG_PRINT("error",("listen() - %d - %s",
-			errno, strerror(errno)));
+			socket_errno, strerror(socket_errno)));
     NDB_CLOSE_SOCKET(sock);
     DBUG_RETURN(false);
   }

--- a/ndb/src/common/util/basestring_vsnprintf.c	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/util/basestring_vsnprintf.c	2007-09-06 13:30:49 +0000
@@ -19,7 +19,7 @@
 #endif
 #include <stdio.h>
 #include <basestring_vsnprintf.h>
-#include <my_config.h>
+#include <my_global.h>
 
 #ifdef _WINDOWS
 #define SNPRINTF_RETURN_TRUNC

--- a/ndb/src/common/util/socket_io.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/common/util/socket_io.cpp	2007-09-06 13:30:49 +0000
@@ -74,7 +74,7 @@
   do
   {
     int t;
-    while((t = recv(socket, ptr, len, MSG_PEEK)) == -1 && errno == EINTR);
+    while((t = recv(socket, ptr, len, MSG_PEEK)) == -1 && socket_errno == EINTR);
     
     if(t < 1)
     {
@@ -91,7 +91,7 @@
 	 */
 	for (len = 1 + i; len; )
 	{
-	  while ((t = recv(socket, ptr, len, 0)) == -1 && errno == EINTR);
+	  while ((t = recv(socket, ptr, len, 0)) == -1 && socket_errno == EINTR);
 	  if (t < 1)
 	    return -1;
 	  ptr += t;
@@ -109,7 +109,7 @@
     
     for (int tmp = t; tmp; )
     {
-      while ((t = recv(socket, ptr, tmp, 0)) == -1 && errno == EINTR);
+      while ((t = recv(socket, ptr, tmp, 0)) == -1 && socket_errno == EINTR);
       if (t < 1)
       {
 	return -1;

--- a/ndb/src/cw/util/SocketRegistry.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/cw/util/SocketRegistry.cpp	2007-09-06 13:30:49 +0000
@@ -164,7 +164,8 @@
     if(strcmp(sc->gethostname(), remotehost)==0) {
       if(sc->isConnected()) {
 	FD_ZERO(&tcpReadset);
-	reply = select(sc->getSocket(), &tcpReadset, 0, 0, &timeout);
+        FD_SET(sc->getSocket(), &tcpReadset);
+	reply = select(sc->getSocket()+1, &tcpReadset, 0, 0, &timeout);
 	if(reply > 0) {
 	  return t->runSession(sc->getSocket(), t);
 	}

--- a/ndb/src/ndbapi/ClusterMgr.cpp	2007-08-29 07:25:53 +0000
+++ b/ndb/src/ndbapi/ClusterMgr.cpp	2007-09-06 13:30:50 +0000
@@ -36,7 +36,7 @@
 #include <mgmapi_configuration.hpp>
 #include <mgmapi_config_parameters.h>
 
-//#define DEBUG_REG
+#define DEBUG_REG
 
 // Just a C wrapper for threadMain
 extern "C" 

