{
fprintf(stderr, "memcat: %s: memcache error %s",
argv[optind], memcached_strerror(memc, rc));
- if (memc->cached_errno)
+ if (memcached_last_error_errno(memc))
{
- fprintf(stderr, " system error %s", strerror(memc->cached_errno));
+ fprintf(stderr, " system error %s", strerror(memcached_last_error_errno(memc)));
}
fprintf(stderr, "\n");
{
fprintf(stderr, "memcp: %s: memcache error %s",
ptr, memcached_strerror(memc, rc));
- if (memc->cached_errno)
- fprintf(stderr, " system error %s", strerror(memc->cached_errno));
+ if (memcached_last_error_errno(memc))
+ fprintf(stderr, " system error %s", strerror(memcached_last_error_errno(memc)));
fprintf(stderr, "\n");
return_code= -1;
if (rc != MEMCACHED_SUCCESS)
{
fprintf(stderr, "memdump: memcache error %s", memcached_strerror(memc, rc));
- if (memc->cached_errno)
- fprintf(stderr, " system error %s", strerror(memc->cached_errno));
+ if (memcached_last_error_errno(memc))
+ fprintf(stderr, " system error %s", strerror(memcached_last_error_errno(memc)));
fprintf(stderr, "\n");
}
{
fprintf(stderr, "memflush: memcache error %s",
memcached_strerror(memc, rc));
- if (memc->cached_errno)
- fprintf(stderr, " system error %s", strerror(memc->cached_errno));
+ if (memcached_last_error_errno(memc))
+ fprintf(stderr, " system error %s", strerror(memcached_last_error_errno(memc)));
fprintf(stderr, "\n");
}
{
fprintf(stderr, "memrm: %s: memcache error %s",
argv[optind], memcached_strerror(memc, rc));
- if (memc->cached_errno)
- fprintf(stderr, " system error %s", strerror(memc->cached_errno));
+ if (memcached_last_error_errno(memc))
+ fprintf(stderr, " system error %s", strerror(memcached_last_error_errno(memc)));
fprintf(stderr, "\n");
return_code= -1;
if (opt_servers)
free(opt_servers);
+
if (opt_hash)
free(opt_hash);
switch (enabled)
{
case MEM_FALSE:
- return ptr->cached_errno ? MEMCACHED_ERRNO : MEMCACHED_FAILURE ;
+ return memcached_last_error_errno(ptr) ? MEMCACHED_ERRNO : MEMCACHED_FAILURE ;
case MEM_TRUE:
{
enabled= test_cork(instance, false);
if (getsockopt(instance->fd, SOL_SOCKET, SO_SNDBUF, &sock_size, &sock_length) < 0)
{
- ptr->cached_errno= errno;
+ memcached_set_errno(ptr, errno, NULL);
return 0; /* Zero means error */
}
}
if (getsockopt(instance->fd, SOL_SOCKET, SO_RCVBUF, &sock_size, &sock_length) < 0)
{
- ptr->cached_errno= errno;
+ memcached_set_errno(ptr, errno, NULL);
return 0; /* Zero means error */
}
return memc->error_messages->rc;
}
-memcached_return_t memcached_last_error_errno(memcached_st *memc)
+int memcached_last_error_errno(memcached_st *memc)
{
if (! memc)
- return MEMCACHED_INVALID_ARGUMENTS;
+ return 0;
if (! memc->error_messages)
- return MEMCACHED_SUCCESS;
+ return 0;
return memc->error_messages->local_errno;
}
memcached_return_t memcached_last_error(memcached_st *memc);
LIBMEMCACHED_API
- memcached_return_t memcached_last_error_errno(memcached_st *memc);
+ int memcached_last_error_errno(memcached_st *memc);
#ifdef __cplusplus
if (gettimeofday(&now, NULL) != 0)
{
- ptr->cached_errno = errno;
+ memcached_set_errno(ptr, errno, NULL);
return MEMCACHED_ERRNO;
}
int err= poll(fds, host_index, memc->poll_timeout);
switch (err) {
case -1:
- memc->cached_errno = get_socket_errno();
+ memcached_set_errno(memc, get_socket_errno(), NULL);
/* FALLTHROUGH */
case 0:
break;
self->tcp_keepidle= 0;
self->io_key_prefetch= 0;
- self->cached_errno= 0;
self->poll_timeout= MEMCACHED_DEFAULT_TIMEOUT;
self->connect_timeout= MEMCACHED_DEFAULT_CONNECT_TIMEOUT;
self->retry_timeout= 0;
uint32_t io_bytes_watermark;
uint32_t io_key_prefetch;
uint32_t tcp_keepidle;
- int cached_errno;
int32_t poll_timeout;
int32_t connect_timeout;
int32_t retry_timeout;
#include "common.h"
static inline void _result_init(memcached_result_st *self,
- const memcached_st *memc)
+ memcached_st *memc)
{
self->item_flags= 0;
self->item_expiration= 0;
ptr->options.is_initialized= true;
- _result_init(ptr, memc);
+ _result_init(ptr, (memcached_st *)memc);
- ptr->root= memc;
WATCHPOINT_SET(ptr->value.options.is_initialized= false);
memcached_string_create(memc, &ptr->value, 0);
WATCHPOINT_ASSERT_INITIALIZED(&ptr->value);
if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE)
{
- ((memcached_st *)ptr->root)->cached_errno= errno;
+ memcached_set_errno(ptr->root, errno, NULL);
}
return rc;
time_t item_expiration;
size_t key_length;
uint64_t item_cas;
- const memcached_st *root;
+ memcached_st *root;
memcached_string_st value;
char item_key[MEMCACHED_MAX_KEY];
struct {
self->options.is_allocated= true;
}
- self->root= memc;
+ self->root= (memcached_st *)memc;
_init_string(self);
{
if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE)
{
- ((memcached_st *)memc)->cached_errno= errno;
+ memcached_set_errno(self->root, errno, NULL);
}
libmemcached_free(memc, self);
char *end;
char *string;
size_t current_size;
- const memcached_st *root;
+ memcached_st *root;
struct {
bool is_allocated:1;
bool is_initialized:1;