prepare v1.1.4
[awesomized/libmemcached] / src / libmemcached / fetch.cc
index 12f046c92c254eae5945f094770444f257921df9..fee6a10d219d12cd36ef0523311803cb1f93696c 100644 (file)
@@ -1,6 +1,6 @@
 /*
     +--------------------------------------------------------------------+
-    | libmemcached - C/C++ Client Library for memcached                  |
+    | libmemcached-awesome - C/C++ Client Library for memcached          |
     +--------------------------------------------------------------------+
     | Redistribution and use in source and binary forms, with or without |
     | modification, are permitted under the terms of the BSD license.    |
@@ -141,6 +141,7 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_
   memcached_instance_st *server;
   memcached_return_t read_ret = MEMCACHED_SUCCESS;
   bool connection_failures = false;
+  bool timeouts = false;
   while ((server = memcached_io_get_readable_server(ptr, read_ret))) {
     char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
     *error = memcached_response(server, buffer, sizeof(buffer), result);
@@ -150,6 +151,8 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_
     } else if (*error == MEMCACHED_CONNECTION_FAILURE) {
       connection_failures = true;
       continue;
+    } else if (*error == MEMCACHED_TIMEOUT) {
+      timeouts = true;
     } else if (*error == MEMCACHED_SUCCESS) {
       result->count++;
       return result;
@@ -175,6 +178,8 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_
         that.
         */
     *error = MEMCACHED_CONNECTION_FAILURE;
+  } else if (timeouts) {
+    *error = MEMCACHED_TIMEOUT;
   } else if (*error == MEMCACHED_SUCCESS) {
     *error = MEMCACHED_END;
   } else if (result->count == 0) {