Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

[patch 6/8] non-kernel patches

From: <stewart(at)flamingspork.com>
Date: Wed Sep 19 2007 - 03:46:47 EDT

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 
 #include 
+#include 
 

 //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 @@

Do you need help?X

   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 
 #include 
+#include 
 

 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,

Do you need more help?X

                  (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 @@
    }
Can we help you?X

 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",
Can't find what you're looking for?X
- 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>  
Don't know where to look next?X

-//#define DEBUG_REG
+#define DEBUG_REG  

 // Just a C wrapper for threadMain
 extern "C"

--
Stewart Smith

-- 
MySQL Code Commits Mailing List
For list archives: 
http://lists.mysql.com/commits
To unsubscribe:    
http://lists.mysql.com/commits?unsub=lists@pantek.com
Received on Wed Sep 19 04:11:42 2007

This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 09:32:50 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library