dump: memcached returns the right error by now
[awesomized/libmemcached] / libmemcached / dump.cc
index 618a63cd319b7e4d09cbe48a1e1cc224f2f23e3b..fcb66604e41eb072089842b9345ab07d97074a63 100644 (file)
@@ -44,7 +44,7 @@
 
 #include <libmemcached/common.h>
 
-static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *callback, void *context, uint32_t number_of_callbacks)
+static memcached_return_t ascii_dump(Memcached *memc, memcached_dump_fn *callback, void *context, uint32_t number_of_callbacks)
 {
   /* MAX_NUMBER_OF_SLAB_CLASSES is defined to 200 in Memcached 1.4.10 */
   for (uint32_t x= 0; x < 200; x++)
@@ -68,7 +68,7 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
     // Send message to all servers
     for (uint32_t server_key= 0; server_key < memcached_server_count(memc); server_key++)
     {
-      org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
+      memcached_instance_st* instance= memcached_instance_fetch(memc, server_key);
 
       memcached_return_t vdo_rc;
       if (memcached_success((vdo_rc= memcached_vdo(instance, vector, 3, true))))
@@ -82,8 +82,9 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
     }
 
     // Collect the returned items
-    org::libmemcached::Instance* instance;
-    while ((instance= memcached_io_get_readable_server(memc)))
+    memcached_instance_st* instance;
+    memcached_return_t read_ret= MEMCACHED_SUCCESS;
+    while ((instance= memcached_io_get_readable_server(memc, read_ret)))
     {
       memcached_return_t response_rc= memcached_response(instance, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL);
       if (response_rc == MEMCACHED_ITEM)
@@ -113,7 +114,7 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
       { 
         // All items have been returned
       }
-      else if (response_rc == MEMCACHED_SERVER_ERROR or response_rc == MEMCACHED_CLIENT_ERROR or response_rc == MEMCACHED_ERROR)
+      else if (response_rc == MEMCACHED_SERVER_ERROR)
       {
         /* If we try to request stats cachedump for a slab class that is too big
          * the server will return an incorrect error message:
@@ -136,8 +137,9 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
   return memcached_has_current_error(*memc) ? MEMCACHED_SOME_ERRORS : MEMCACHED_SUCCESS;
 }
 
-memcached_return_t memcached_dump(memcached_st *ptr, memcached_dump_fn *callback, void *context, uint32_t number_of_callbacks)
+memcached_return_t memcached_dump(memcached_st *shell, memcached_dump_fn *callback, void *context, uint32_t number_of_callbacks)
 {
+  Memcached* ptr= memcached2Memcached(shell);
   memcached_return_t rc;
   if (memcached_failed(rc= initialize_query(ptr, true)))
   {