New configure flag: --enable-deprecated
[awesomized/libmemcached] / libmemcached / memcached_response.c
index 554169300fa61a279029d903a7359bb2a16a62c4..32321c23471b0189fa25fbf6ea37128927cb5259 100644 (file)
@@ -80,7 +80,6 @@ static memcached_return textual_value_fetch(memcached_server_st *ptr,
   char *end_ptr;
   char *next_ptr;
   size_t value_length;
-  size_t read_length;
   size_t to_read;
   char *value_ptr;
 
@@ -167,7 +166,6 @@ static memcached_return textual_value_fetch(memcached_server_st *ptr,
   }
 
   value_ptr= memcached_string_value(&result->value);
-  read_length= 0;
   /* 
     We read the \r\n into the string since not doing so is more 
     cycles then the waster of memory to do so.
@@ -176,8 +174,12 @@ static memcached_return textual_value_fetch(memcached_server_st *ptr,
     some people lazy about using the return length.
   */
   to_read= (value_length) + 2;
-  read_length= memcached_io_read(ptr, value_ptr, to_read);
-  if (read_length != (size_t)(value_length + 2))
+  ssize_t read_length= 0;
+  memcached_return rrc= memcached_io_read(ptr, value_ptr, to_read, &read_length);
+  if (rrc != MEMCACHED_SUCCESS)
+    return rrc;
+
+  if (read_length != (ssize_t)(value_length + 2))
   {
     goto read_error;
   }
@@ -268,6 +270,10 @@ static memcached_return textual_read_one_response(memcached_server_st *ptr,
       else
         return MEMCACHED_UNKNOWN_READ_FAILURE;
     }
+  case 'I': /* CLIENT ERROR */
+      /* We add back in one because we will need to search for END */
+      memcached_server_response_increment(ptr);
+    return MEMCACHED_ITEM;
   case 'C': /* CLIENT ERROR */
     return MEMCACHED_CLIENT_ERROR;
   default: