X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.c;h=0d343f1d0c38460195d4c00f2fdcfbe97d118a26;hb=b41c57c2f84855cfd32a7b14008ca0aceb92f32b;hp=42abda2dec11563e8254097c6d2e470cc2ab9ea0;hpb=0c7d432ca4a89f23caa74ff11e5a63fa9e6d3f3f;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.c b/libmemcached/server.c index 42abda2d..0d343f1d 100644 --- a/libmemcached/server.c +++ b/libmemcached/server.c @@ -113,17 +113,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 +138,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 +158,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 +180,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); +}