X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Ffetch.cc;h=2b5b800693c495245a3265ff49acdf65e81c344c;hb=1dff98bcffc7555e0255af25f7de26cb8eb42d32;hp=d5730105bd069677c346f9e57ff823eb882d1ec8;hpb=91e92172731fe8a37e562a165d25a312569aff44;p=m6w6%2Flibmemcached diff --git a/libmemcached/fetch.cc b/libmemcached/fetch.cc index d5730105..2b5b8006 100644 --- a/libmemcached/fetch.cc +++ b/libmemcached/fetch.cc @@ -44,23 +44,32 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, { memcached_result_st *result_buffer= &ptr->result; memcached_return_t unused; - if (not error) + if (error == NULL) + { error= &unused; + } - - unlikely (ptr->flags.use_udp) + if (memcached_is_udp(ptr)) { if (value_length) + { *value_length= 0; + } if (key_length) + { *key_length= 0; + } if (flags) + { *flags= 0; + } if (key) + { *key= 0; + } *error= MEMCACHED_NOT_SUPPORTED; return NULL; @@ -71,22 +80,32 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, { WATCHPOINT_ASSERT(result_buffer == NULL); if (value_length) + { *value_length= 0; + } if (key_length) + { *key_length= 0; + } if (flags) + { *flags= 0; + } if (key) + { *key= 0; + } return NULL; } if (value_length) + { *value_length= memcached_string_length(&result_buffer->value); + } if (key) { @@ -94,26 +113,39 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, { *error= MEMCACHED_KEY_TOO_BIG; if (value_length) + { *value_length= 0; + } - if (key_length) - *key_length= 0; + if (key_length) + { + *key_length= 0; + } - if (flags) - *flags= 0; + if (flags) + { + *flags= 0; + } - if (key) - *key= 0; + if (key) + { + *key= 0; + } return NULL; } + strncpy(key, result_buffer->item_key, result_buffer->key_length); // For the binary protocol we will cut off the key :( if (key_length) + { *key_length= result_buffer->key_length; + } } if (flags) + { *flags= result_buffer->item_flags; + } return memcached_string_take_value(&result_buffer->value); } @@ -132,13 +164,13 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, return NULL; } - if (ptr->flags.use_udp) + if (memcached_is_udp(ptr)) { *error= MEMCACHED_NOT_SUPPORTED; return NULL; } - if (not result) + if (result == NULL) { // If we have already initialized (ie it is in use) our internal, we // create one.