X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fpurge.cc;h=4dbe24d05cb090e733f6d1a07d2b197c92d28af3;hb=9973d386ac8476cd09cc4d9cf7bd2234a42740c7;hp=5f6d4bb78275d341034070bee2fe0e7bc089bf86;hpb=28d3641c8331dfe348a119c6eb4bd776c526da48;p=awesomized%2Flibmemcached diff --git a/libmemcached/purge.cc b/libmemcached/purge.cc index 5f6d4bb7..4dbe24d0 100644 --- a/libmemcached/purge.cc +++ b/libmemcached/purge.cc @@ -105,14 +105,15 @@ bool memcached_purge(memcached_instance_st* ptr) */ if (memcached_io_write(ptr) == false) { + memcached_io_reset(ptr); memcached_set_error(*ptr, MEMCACHED_WRITE_FAILURE, MEMCACHED_AT); return false; } WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET); bool is_successful= true; - uint32_t no_msg= memcached_server_response_count(ptr) - 1; - if (no_msg > 0) + uint32_t no_msg= memcached_server_response_count(ptr); + if (no_msg > 1) { memcached_result_st result; @@ -126,7 +127,7 @@ bool memcached_purge(memcached_instance_st* ptr) memcached_result_st* result_ptr= memcached_result_create(root, &result); assert(result_ptr); - for (uint32_t x= 0; x < no_msg; x++) + for (uint32_t x= 0; x < no_msg - 1; x++) { memcached_result_reset(result_ptr); memcached_return_t rc= memcached_read_one_response(ptr, result_ptr); @@ -138,7 +139,6 @@ bool memcached_purge(memcached_instance_st* ptr) if (rc== MEMCACHED_PROTOCOL_ERROR or rc == MEMCACHED_UNKNOWN_READ_FAILURE or rc == MEMCACHED_READ_FAILURE) { WATCHPOINT_ERROR(rc); - memcached_io_reset(ptr); is_successful= false; }