OSX fixes, make memcapable a test.
[m6w6/libmemcached] / libmemcached / connect.cc
index 43924116fc69f20919bf7b01b30c4385528bc54e..7044306e6908cfe864fedb4835084c170a2900c0 100644 (file)
@@ -37,7 +37,6 @@
 
 
 #include <libmemcached/common.h>
-#include <cassert>
 #include <ctime>
 #include <sys/time.h>
 
@@ -79,7 +78,6 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
       }
 
     default: // A real error occurred and we need to completely bail
-      WATCHPOINT_ERRNO(get_socket_errno());
       switch (get_socket_errno())
       {
 #ifdef TARGET_OS_LINUX
@@ -108,7 +106,7 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
           memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT);
         }
 
-        WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET);
+        assert_msg(ptr->fd != INVALID_SOCKET, "poll() was passed an invalid file descriptor");
         (void)closesocket(ptr->fd);
         ptr->fd= INVALID_SOCKET;
         ptr->state= MEMCACHED_SERVER_STATE_NEW;
@@ -124,7 +122,6 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
 
 static memcached_return_t set_hostinfo(memcached_server_st *server)
 {
-  WATCHPOINT_ASSERT(not server->address_info); // We cover the case where a programming mistake has been made.
   if (server->address_info)
   {
     freeaddrinfo(server->address_info);
@@ -135,7 +132,9 @@ static memcached_return_t set_hostinfo(memcached_server_st *server)
   char str_port[NI_MAXSERV];
   int length= snprintf(str_port, NI_MAXSERV, "%u", (uint32_t)server->port);
   if (length >= NI_MAXSERV || length < 0)
+  {
     return MEMCACHED_FAILURE;
+  }
 
   struct addrinfo hints;
   memset(&hints, 0, sizeof(struct addrinfo));
@@ -174,8 +173,6 @@ static memcached_return_t set_hostinfo(memcached_server_st *server)
 
   default:
     {
-      WATCHPOINT_STRING(server->hostname);
-      WATCHPOINT_STRING(gai_strerror(errcode));
       return memcached_set_error(*server, MEMCACHED_HOST_LOOKUP_FAILURE, MEMCACHED_AT, memcached_string_make_from_cstr(gai_strerror(errcode)));
     }
   }
@@ -224,10 +221,12 @@ static inline void set_socket_nonblocking(memcached_server_st *ptr)
 
 static void set_socket_options(memcached_server_st *ptr)
 {
-  WATCHPOINT_ASSERT(ptr->fd != -1);
+  assert_msg(ptr->fd != -1, "invalid socket was passed to set_socket_options()");
 
   if (ptr->type == MEMCACHED_CONNECTION_UDP)
+  {
     return;
+  }
 
 #ifdef HAVE_SNDTIMEO
   if (ptr->root->snd_timeout)
@@ -406,7 +405,9 @@ static memcached_return_t network_connect(memcached_server_st *ptr)
     while (--counter)
     {
       if ((rc= set_hostinfo(ptr)) != MEMCACHED_TIMEOUT)
+      {
         break;
+      }
 
 #ifndef WIN32
       struct timespec dream, rem;
@@ -514,11 +515,20 @@ static memcached_return_t network_connect(memcached_server_st *ptr)
     struct timeval next_time;
 
     if (gettimeofday(&next_time, NULL) == 0)
+    {
       ptr->next_retry= next_time.tv_sec + ptr->root->retry_timeout;
+    }
+  }
+  
+  if (memcached_has_current_error(*ptr))
+  {
+    return memcached_server_error_return(ptr);
   }
 
-  if (timeout_error_occured)
+  if (timeout_error_occured and ptr->state < MEMCACHED_SERVER_STATE_IN_PROGRESS)
+  {
     return memcached_set_error(*ptr, MEMCACHED_TIMEOUT, MEMCACHED_AT);
+  }
 
   return memcached_set_error(*ptr, MEMCACHED_CONNECTION_FAILURE, MEMCACHED_AT); /* The last error should be from connect() */
 }
@@ -528,11 +538,6 @@ void set_last_disconnected_host(memcached_server_write_instance_st self)
   // const_cast
   memcached_st *root= (memcached_st *)self->root;
 
-#if 0
-  WATCHPOINT_STRING(self->hostname);
-  WATCHPOINT_NUMBER(self->port);
-  WATCHPOINT_ERRNO(self->cached_errno);
-#endif
   memcached_server_free(root->last_disconnected_server);
   root->last_disconnected_server= memcached_server_clone(NULL, self);
 }