X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.c;h=f61f572e6b4d5dd439903e03a2deb3b58d221eb6;hb=f1563c45b37bba7d51228af44dc184a9d0308e81;hp=42abda2dec11563e8254097c6d2e470cc2ab9ea0;hpb=0c7d432ca4a89f23caa74ff11e5a63fa9e6d3f3f;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.c b/libmemcached/server.c index 42abda2d..f61f572e 100644 --- a/libmemcached/server.c +++ b/libmemcached/server.c @@ -51,6 +51,7 @@ memcached_server_st *memcached_server_create_with(memcached_st *memc, memcached_ host->fd= -1; host->type= type; host->read_ptr= host->read_buffer; + host->state.is_corked= 0; if (memc) host->next_retry= memc->retry_timeout; if (type == MEMCACHED_CONNECTION_UDP) @@ -113,17 +114,19 @@ memcached_return_t memcached_server_cursor(memcached_st *ptr, void *context, uint32_t number_of_callbacks) { - unsigned int y; + uint32_t y; - for (y= 0; y < ptr->number_of_hosts; y++) + for (y= 0; y < memcached_server_count(ptr); y++) { - unsigned int x; + uint32_t x; + memcached_server_instance_st *instance= + memcached_server_instance_fetch(ptr, y); for (x= 0; x < number_of_callbacks; x++) { unsigned int iferror; - iferror= (*callback[x])(ptr, &ptr->hosts[y], context); + iferror= (*callback[x])(ptr, instance, context); if (iferror) continue; @@ -136,13 +139,14 @@ memcached_return_t memcached_server_cursor(memcached_st *ptr, memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error) { uint32_t server_key; + memcached_server_instance_st *instance; *error= memcached_validate_key_length(key_length, ptr->flags.binary_protocol); unlikely (*error != MEMCACHED_SUCCESS) return NULL; - unlikely (ptr->number_of_hosts == 0) + unlikely (memcached_server_count(ptr) == 0) { *error= MEMCACHED_NO_SERVERS; return NULL; @@ -155,17 +159,17 @@ memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key } server_key= memcached_generate_hash(ptr, key, key_length); + instance= memcached_server_instance_fetch(ptr, server_key); - return memcached_server_clone(NULL, &ptr->hosts[server_key]); + return memcached_server_clone(NULL, instance); } const char *memcached_server_error(memcached_server_st *ptr) { - if (ptr) - return ptr->cached_server_error; - else - return NULL; + return ptr + ? ptr->cached_server_error + : NULL; } void memcached_server_error_reset(memcached_server_st *ptr) @@ -177,3 +181,15 @@ memcached_server_st *memcached_server_get_last_disconnect(memcached_st *ptr) { return ptr->last_disconnected_server; } + +uint32_t memcached_server_list_count(memcached_server_st *ptr) +{ + return (ptr == NULL) + ? 0 + : memcached_servers_count(ptr); +} + +void memcached_server_list_free(memcached_server_st *ptr) +{ + server_list_free(NULL, ptr); +}