X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_response.c;h=19fa640076045faa1bdf0cdd5cbfbbad092e9cd1;hb=d4dc795f136a3a652c5b13b4d818345c6080bceb;hp=5b0b7831cd8b7fef75d43e806cfa0c30393bde90;hpb=dcb04e7f4ecbe3d9aee892a551c793a7f2d809b4;p=m6w6%2Flibmemcached diff --git a/lib/memcached_response.c b/lib/memcached_response.c index 5b0b7831..19fa6400 100644 --- a/lib/memcached_response.c +++ b/lib/memcached_response.c @@ -15,13 +15,18 @@ 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++) { + size_t total_length= 0; buffer_ptr= buffer; + while (1) { unsigned int read_length; @@ -36,9 +41,14 @@ memcached_return memcached_response(memcached_st *ptr, break; else buffer_ptr++; + + total_length++; + WATCHPOINT_ASSERT(total_length < buffer_length); } + + if (memcached_server_response_count(ptr, server_key)) + memcached_server_response_decrement(ptr, server_key); } - ptr->stack_responses= 0; switch(buffer[0]) { @@ -86,3 +96,15 @@ memcached_return memcached_response(memcached_st *ptr, 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); +}