Optimization around connect.
authorBrian Aker <brian@gaz>
Tue, 29 Jun 2010 16:39:45 +0000 (09:39 -0700)
committerBrian Aker <brian@gaz>
Tue, 29 Jun 2010 16:39:45 +0000 (09:39 -0700)
libmemcached/behavior.c
libmemcached/connect.c

index f1573b608653e86dc0629b4438736130c835fcde..2f5311e5a01ddac70d96cc9c36576983d3b66f79 100644 (file)
@@ -55,6 +55,7 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr,
     ptr->server_failure_limit= (uint32_t)data;
     break;
   case MEMCACHED_BEHAVIOR_BINARY_PROTOCOL:
+    memcached_quit(ptr); // We need t shutdown all of the connections to make sure we do the correct protocol
     if (data)
     {
       ptr->flags.verify_key= false;
index 3002727d6a4cbed07051e0a7f8fd918e37d01a9a..bf93dff1bf66d481d6a219b2c0f9b7bccbf6965a 100644 (file)
@@ -470,6 +470,10 @@ void set_last_disconnected_host(memcached_server_write_instance_st ptr)
 memcached_return_t memcached_connect(memcached_server_write_instance_st ptr)
 {
   memcached_return_t rc= MEMCACHED_NO_SERVERS;
+
+  if (ptr->fd > -1)
+    return MEMCACHED_SUCCESS;
+
   LIBMEMCACHED_MEMCACHED_CONNECT_START();
 
   /* both retry_timeout and server_failure_limit must be set in order to delay retrying a server on error. */