X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Flibmemcached%2Fget.cc;h=d625adce3824feb3e733ec2d794faad06b1d3e8e;hb=2f289c64f625962d945ec3bee80f36bc5c61ee35;hp=93330f450b51a991d049bafa2f23319a73df69db;hpb=c8a5aecba8e189092266f304ca81ab42625edf60;p=awesomized%2Flibmemcached diff --git a/src/libmemcached/get.cc b/src/libmemcached/get.cc index 93330f45..d625adce 100644 --- a/src/libmemcached/get.cc +++ b/src/libmemcached/get.cc @@ -14,6 +14,7 @@ */ #include "libmemcached/common.h" +#include "p9y/random.hpp" char *memcached_get(memcached_st *ptr, const char *key, size_t key_length, size_t *value_length, uint32_t *flags, memcached_return_t *error) { @@ -98,8 +99,12 @@ char *memcached_get_by_key(memcached_st *shell, const char *group_key, size_t gr if (rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED) { *error = rc; - *value_length = memcached_result_length(result_ptr); - *flags = memcached_result_flags(result_ptr); + if (value_length) { + *value_length = memcached_result_length(result_ptr); + } + if (flags) { + *flags = memcached_result_flags(result_ptr); + } char *result_value = memcached_string_take_value(&result_ptr->value); memcached_result_free(result_ptr); @@ -178,7 +183,7 @@ static memcached_return_t __mget_by_key_real(memcached_st *ptr, const char *grou if (instance->response_count()) { char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE]; - if (ptr->flags.no_block) { + if (ptr->flags.no_block || ptr->flags.buffer_requests) { memcached_io_write(instance); }