First pass for restructured IO
[awesomized/libmemcached] / libmemcached / fetch.cc
index 2fd0dc51e845a96a4f02194ec6e9679958936bdb..ff729f9e59942df907003c90cc0ce5254d85211f 100644 (file)
@@ -2,7 +2,7 @@
  * 
  *  Libmemcached library
  *
- *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *  Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
  *  Copyright (C) 2006-2009 Brian Aker All rights reserved.
  *
  *  Redistribution and use in source and binary forms, with or without
@@ -42,7 +42,6 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length,
                       uint32_t *flags,
                       memcached_return_t *error)
 {
-  memcached_result_st *result_buffer= &ptr->result;
   memcached_return_t unused;
   if (error == NULL)
   {
@@ -75,6 +74,7 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length,
     return NULL;
   }
 
+  memcached_result_st *result_buffer= &ptr->result;
   result_buffer= memcached_fetch_result(ptr, result_buffer, error);
   if (result_buffer == NULL or memcached_failed(*error))
   {
@@ -191,8 +191,9 @@ 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_instance_st *server;
-  while ((server= memcached_io_get_readable_server(ptr)))
+  org::libmemcached::Instance *server;
+  memcached_return_t read_ret= MEMCACHED_SUCCESS;
+  while ((server= memcached_io_get_readable_server(ptr, read_ret)))
   {
     char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
     *error= memcached_response(server, buffer, sizeof(buffer), result);