X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmemcached_response.c;h=10547504743c476956ade3a7a5ebfe664f44aa4c;hb=d6505b16fb85f77527934510d0395adfcbb66377;hp=d649922b0da164354d91bd276e16fadf8f44838b;hpb=85a66fec1e07e874e5410ce56a2976d68fbe14fd;p=m6w6%2Flibmemcached diff --git a/lib/memcached_response.c b/lib/memcached_response.c index d649922b..10547504 100644 --- a/lib/memcached_response.c +++ b/lib/memcached_response.c @@ -15,13 +15,17 @@ memcached_return memcached_response(memcached_st *ptr, unsigned int x; size_t send_length; char *buffer_ptr; + unsigned int max_messages; + memset(buffer, 0, buffer_length); send_length= 0; - for (x= 0; x <= ptr->stack_responses; x++) + max_messages= memcached_server_response_count(ptr, server_key); + for (x= 0; x <= max_messages; x++) { buffer_ptr= buffer; + while (1) { unsigned int read_length; @@ -37,8 +41,10 @@ memcached_return memcached_response(memcached_st *ptr, else buffer_ptr++; } + + if (memcached_server_response_count(ptr, server_key)) + memcached_server_response_decrement(ptr, server_key); } - ptr->stack_responses= 0; switch(buffer[0]) { @@ -49,7 +55,7 @@ memcached_return memcached_response(memcached_st *ptr, 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')