Merging Trond, also fixed make test.
[awesomized/libmemcached] / libmemcached / memcached_response.c
index 845052db865d3e058b791a4ffe5f0ffe58779d76..1ea0c725ea12ca94ad0446ff2d894e1554fd9960 100644 (file)
@@ -179,7 +179,7 @@ static memcached_return textual_value_fetch(memcached_server_st *ptr,
   if (rrc != MEMCACHED_SUCCESS)
     return rrc;
 
-  if (read_length != (size_t)(value_length + 2))
+  if (read_length != (ssize_t)(value_length + 2))
   {
     goto read_error;
   }
@@ -270,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:
@@ -391,13 +395,11 @@ static memcached_return binary_read_one_response(memcached_server_st *ptr,
         WATCHPOINT_ASSERT(bodylen == 0);
         return MEMCACHED_SUCCESS;
       } 
-      break;
     case PROTOCOL_BINARY_CMD_NOOP:
       {
         WATCHPOINT_ASSERT(bodylen == 0);
         return MEMCACHED_END;
       }
-      break;
     case PROTOCOL_BINARY_CMD_STAT:
       {
         if (bodylen == 0)