Add test cases for add server for NULL cases.
[m6w6/libmemcached] / libmemcached / connect.cc
index 07bb545b2bbe55f603f6ade5617ea4f21e5154af..fa35d84e5af49cd35edbbd89598fe09c948eb7e5 100644 (file)
@@ -153,6 +153,7 @@ static memcached_return_t set_hostinfo(memcached_server_st *server)
     hints.ai_protocol= IPPROTO_TCP;
   }
 
+  server->address_info= NULL;
   int errcode;
   switch(errcode= getaddrinfo(server->hostname, str_port, &hints, &server->address_info))
   {
@@ -593,18 +594,19 @@ memcached_return_t memcached_connect(memcached_server_write_instance_st ptr)
   case MEMCACHED_CONNECTION_UDP:
   case MEMCACHED_CONNECTION_TCP:
     rc= network_connect(ptr);
-#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
-    if (ptr->fd != INVALID_SOCKET and ptr->root->sasl.callbacks)
+    if (LIBMEMCACHED_WITH_SASL_SUPPORT)
     {
-      rc= memcached_sasl_authenticate_connection(ptr);
-      if (memcached_failed(rc) and ptr->fd != INVALID_SOCKET)
+      if (ptr->fd != INVALID_SOCKET and ptr->root->sasl.callbacks)
       {
-        WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET);
-        (void)closesocket(ptr->fd);
-        ptr->fd= INVALID_SOCKET;
+        rc= memcached_sasl_authenticate_connection(ptr);
+        if (memcached_failed(rc) and ptr->fd != INVALID_SOCKET)
+        {
+          WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET);
+          (void)closesocket(ptr->fd);
+          ptr->fd= INVALID_SOCKET;
+        }
       }
     }
-#endif
     break;
 
   case MEMCACHED_CONNECTION_UNIX_SOCKET: