Merge in work to test return types.
[awesomized/libmemcached] / libmemcached / fetch.cc
index dd0b036d8433cecc7177e54f9c40912f1a2a5b0c..8867d53d0cc711bc5b6cee9c001bd573015c361f 100644 (file)
@@ -86,7 +86,9 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length,
   }
 
   if (value_length)
+  {
     *value_length= memcached_string_length(&result_buffer->value);
+  }
 
   if (key)
   {
@@ -122,8 +124,6 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr,
                                             memcached_result_st *result,
                                             memcached_return_t *error)
 {
-  memcached_server_st *server;
-
   memcached_return_t unused;
   if (not error)
     error= &unused;
@@ -159,12 +159,17 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr,
   }
 
   *error= MEMCACHED_MAXIMUM_RETURN; // We use this to see if we ever go into the loop
+  memcached_server_st *server;
   while ((server= memcached_io_get_readable_server(ptr)))
   {
     char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
     *error= memcached_response(server, buffer, sizeof(buffer), result);
 
-    if (*error == MEMCACHED_SUCCESS)
+    if (*error == MEMCACHED_IN_PROGRESS)
+    {
+      continue;
+    }
+    else if (*error == MEMCACHED_SUCCESS)
     {
       result->count++;
       return result;