X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Ffetch.cc;h=7f677d023e57aacaf43b9ef9d17059e637645b56;hb=a909573e5e57f8a6ee92cf4ffb031b9762642d1b;hp=2b5b800693c495245a3265ff49acdf65e81c344c;hpb=920b0f21e75bb5b145a7de7383f5ae8c4a2c358a;p=m6w6%2Flibmemcached diff --git a/libmemcached/fetch.cc b/libmemcached/fetch.cc index 2b5b8006..7f677d02 100644 --- a/libmemcached/fetch.cc +++ b/libmemcached/fetch.cc @@ -2,7 +2,7 @@ * * Libmemcached library * - * Copyright (C) 2011 Data Differential, http://datadifferential.com/ + * Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/ * Copyright (C) 2006-2009 Brian Aker All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,12 +37,12 @@ #include -char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, +char *memcached_fetch(memcached_st *shell, char *key, size_t *key_length, size_t *value_length, uint32_t *flags, memcached_return_t *error) { - memcached_result_st *result_buffer= &ptr->result; + Memcached* ptr= memcached2Memcached(shell); memcached_return_t unused; if (error == NULL) { @@ -75,6 +75,7 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, return NULL; } + memcached_result_st *result_buffer= &ptr->result; result_buffer= memcached_fetch_result(ptr, result_buffer, error); if (result_buffer == NULL or memcached_failed(*error)) { @@ -155,10 +156,12 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_return_t *error) { memcached_return_t unused; - if (not error) + if (error == NULL) + { error= &unused; + } - if (not ptr) + if (ptr == NULL) { *error= MEMCACHED_INVALID_ARGUMENTS; return NULL; @@ -176,7 +179,7 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, // create one. if (memcached_is_initialized(&ptr->result)) { - if (not (result= memcached_result_create(ptr, NULL))) + if ((result= memcached_result_create(ptr, NULL)) == NULL) { *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE; return NULL; @@ -189,8 +192,9 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, } *error= MEMCACHED_MAXIMUM_RETURN; // We use this to see if we ever go into the loop - memcached_server_st *server; - while ((server= memcached_io_get_readable_server(ptr))) + memcached_instance_st *server; + memcached_return_t read_ret= MEMCACHED_SUCCESS; + while ((server= memcached_io_get_readable_server(ptr, read_ret))) { char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE]; *error= memcached_response(server, buffer, sizeof(buffer), result); @@ -249,11 +253,12 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, return NULL; } -memcached_return_t memcached_fetch_execute(memcached_st *ptr, +memcached_return_t memcached_fetch_execute(memcached_st *shell, memcached_execute_fn *callback, void *context, uint32_t number_of_callbacks) { + Memcached* ptr= memcached2Memcached(shell); memcached_result_st *result= &ptr->result; memcached_return_t rc; bool some_errors= false;