Modifying behavior to bounce connection in the case of a bad value from
[awesomized/libmemcached] / lib / memcached_storage.c
index 43a96636130aae2455f1f7c2d7f558cc14f01a22..d8b124325aafb4c08270f0cadae4f423aa85e8bc 100644 (file)
@@ -86,31 +86,31 @@ static inline memcached_return memcached_send(memcached_st *ptr,
     goto error;
   }
 
-  rc=  memcached_do(ptr, server_key, buffer, write_length, 0);
+  rc=  memcached_do(&ptr->hosts[server_key], buffer, write_length, 0);
   if (rc != MEMCACHED_SUCCESS)
     goto error;
 
-  if ((sent_length= memcached_io_write(ptr, server_key, value, value_length, 0)) == -1)
+  if ((sent_length= memcached_io_write(&ptr->hosts[server_key], value, value_length, 0)) == -1)
   {
     rc= MEMCACHED_WRITE_FAILURE;
     goto error;
   }
 
-  if ((ptr->flags & MEM_NO_BLOCK) && verb == SET_OP)
+  if ((ptr->flags & MEM_BUFFER_REQUESTS) && verb == SET_OP)
     to_write= 0;
   else
     to_write= 1;
 
-  if ((sent_length= memcached_io_write(ptr, server_key, "\r\n", 2, to_write)) == -1)
+  if ((sent_length= memcached_io_write(&ptr->hosts[server_key], "\r\n", 2, to_write)) == -1)
   {
     rc= MEMCACHED_WRITE_FAILURE;
     goto error;
   }
 
   if (to_write == 0)
-    rc= MEMCACHED_SUCCESS;
-  else
-    rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL, server_key);
+    return MEMCACHED_BUFFERED;
+
+  rc= memcached_response(&ptr->hosts[server_key], buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL);
 
   if (rc == MEMCACHED_STORED)
     return MEMCACHED_SUCCESS;
@@ -118,7 +118,7 @@ static inline memcached_return memcached_send(memcached_st *ptr,
     return rc;
 
 error:
-  memcached_io_reset(ptr, server_key);
+  memcached_io_reset(&ptr->hosts[server_key]);
 
   return rc;
 }