char *buffer, size_t buffer_length,
unsigned int server_key)
{
+ unsigned int x;
size_t send_length;
char *buffer_ptr;
+ unsigned int max_messages;
+
- memset(buffer, 0, buffer_length);
send_length= 0;
- buffer_ptr= buffer;
- while (1)
+ max_messages= memcached_server_response_count(ptr, server_key);
+ for (x= 0; x <= max_messages; x++)
{
- unsigned int read_length;
+ size_t total_length= 0;
+ buffer_ptr= buffer;
+
+ while (1)
+ {
+ unsigned int read_length;
+
+ read_length= memcached_io_read(ptr, server_key,
+ buffer_ptr, 1);
- read_length= memcached_io_read(ptr, server_key,
- buffer_ptr, 1);
+ if (read_length != 1)
+ return MEMCACHED_UNKNOWN_READ_FAILURE;
- if (read_length != 1)
- return MEMCACHED_UNKNOWN_READ_FAILURE;
+ if (*buffer_ptr == '\n')
+ break;
+ else
+ buffer_ptr++;
+
+ total_length++;
+ WATCHPOINT_ASSERT(total_length < buffer_length);
+ }
- if (*buffer_ptr == '\n')
- break;
- else
- buffer_ptr++;
+ if (memcached_server_response_count(ptr, server_key))
+ memcached_server_response_decrement(ptr, server_key);
}
switch(buffer[0])
case 'S': /* STORED STATS SERVER_ERROR */
{
if (buffer[2] == 'A') /* STORED STATS */
- return MEMCACHED_SUCCESS;
+ return MEMCACHED_STAT;
else if (buffer[1] == 'E')
return MEMCACHED_SERVER_ERROR;
else if (buffer[1] == 'T')
return MEMCACHED_SUCCESS;
}
+
+char *memcached_result_value(memcached_result_st *ptr)
+{
+ memcached_string_st *sptr= &ptr->value;
+ return memcached_string_value(sptr);
+}
+
+size_t memcached_result_length(memcached_result_st *ptr)
+{
+ memcached_string_st *sptr= &ptr->value;
+ return memcached_string_length(sptr);
+}